Page tree
Skip to end of metadata
Go to start of metadata

This API binds parameters to a prepared SQL statement.

Before using this API, you must call pjs.prepare(), so that you can pass in the handle from that call.

The API can also be called in the form of a method attached to a statement handle object as follows: stmt.bindParameters(). pjs.bindParameters() can accept field names as input/output parameters, stmt.bindParameters() cannot.

Parameters
  1. The handle created by pjs.prepare(). This parameter is omitted if the API is called as a statement method.
  2. An array of parameters for each SQL parameter marker. Each element in the array must be another array, where the first element is the value of the parameter and the second is the parameter type. For example:
    • [[paramA, SQL_PARAM_INPUT], [paramB, SQL_PARAM_INPUT]]

      If an array is not used, the parameter is automatically converted to an array to be processed by the API. If the parameter type is not passed, SQL_PARAM_INPUT is assumed.

Example
pjs.define("productsp_out", { type: 'data structure', qualified: true, dim: 50, elements: {
  "prid": { type: "packed decimal", length: 5, decimals: 0, initValue: 105 },
  "prname": { type: "char", length: 30 },
  "prdesc": { type: "char", length: 60 }
}})
  
pjs.define("searchQuery", { type: "char", length: 30 });
  
pjs.clear(productsp_out);
 
searchQuery = '%' + 'Garmin' + '%';
var c1 = pjs.prepare("select prid, prname, prdesc from demolib/productsp where prdesc like ? order by prid");
pjs.bindParameters(c1, [
  [searchQuery.trim(), SQL_PARAM_INPUT]
]);  // example of alternate simplified syntax: c1.bindParameters(searchQuery.trim());
pjs.execute(c1);
 
pjs.fetch(c1, productsp_out, 50);
 
pjs.close(c1);


Requirements

When using an IBM i database, this API requires the Profound.js Connector module.