This API executes a non-prepared statement on IBM i, which can be used if there are no parameter markers in your SQL.
The API can also be called in the form of a method attached to a statement object as follows: stmt.executeDirect().
Note: There is a security risk if you do not sanitize any user input that is passed into this API. This is what prepared statements will do for you automatically.
This method will return a handle which must be used again in other statements.
SQL diagnostics are reported in the SQLCA:
SQLCA fields are defined in Profound.js programs with the names in lowercase. sqlcode will be set to zero if execution was successful.
c1 = pjs.allocStmt(); pjs.setStmtAttr(c1, SQL_ATTR_CURSOR_SCROLLABLE, SQL_TRUE); pjs.executeDirect(c1, "SELECT prid FROM demolib/productsp ORDER BY prid"); pjs.fetchLast(c1, prid); pjs.close(c1);
c1 = pjs.allocStmt(); c1.setStmtAttr(SQL_ATTR_CURSOR_SCROLLABLE, SQL_TRUE); c1.executeDirect("SELECT prid FROM demolib/productsp ORDER BY prid"); pjs.fetchLast(c1, prid); c1.close();
When using an IBM i database, this API requires the Profound.js Connector module.