-
async close()
-
Closes the connection
Throws:
-
Throws an error if the operation fails.
-
-
Type
-
$.hdb.SQLException
-
async commit()
-
Commits the changes and ends the current transaction. By default autocommit mode is disabled,
which means all database changes must be explicitly commited.
Throws:
-
Throws an error if the operation fails.
-
-
Type
-
$.hdb.SQLException
Example
var connection = await $.hdb.getConnection();
await connection.executeUpdate('UPDATE "DB_EXAMPLE"."ICECREAM" SET QUANTITY=? WHERE FLAVOR=?', 9, 'CHOCOLATE');
await connection.commit();
-
async executeQuery(query, arguments) → {$.hdb.ResultSet}
-
Executes a database query. The query string is prepared and the additional arguments are applied
as statement parameters, before the statement is executed.
Parameters:
Name |
Type |
Argument |
Description |
query |
string
|
|
The query string to be executed. |
arguments |
any
|
<optional>
<repeatable>
|
Variable number of arguments to be bound to the query
parameters.
|
Throws:
-
Throws an error if the statement cannot be executed.
-
-
Type
-
$.hdb.SQLException
Returns:
-
Type
-
$.hdb.ResultSet
Example
var connection = await $.hdb.getConnection();
await connection.executeQuery('SELECT * FROM "DB_EXAMPLE"."ICECREAM"');
await connection.executeQuery('SELECT * FROM "DB_EXAMPLE"."ICECREAM" WHERE FLAVOR = ?', 'CHOCOLATE');
await connection.executeQuery('SELECT * FROM "DB_EXAMPLE"."ICECREAM" WHERE FLAVOR = ? AND PRICE < ?', 'STRAWBERRY', 2.50);
-
async executeUpdate(statement, arguments) → {number|array}
-
Executes a SQL statement, which changes the database state. SELECT and CALL statements are not
allowed here. The query string is prepared and the additional arguments are applied as statement
parameters, before the statement is executed.
Parameters:
Name |
Type |
Argument |
Description |
statement |
string
|
|
The statement to be executed. |
arguments |
any
|
<optional>
<repeatable>
|
Variable number of arguments to be bound to the query
parameters.
|
Throws:
-
Throws an error if the statement cannot be executed.
-
-
Type
-
$.hdb.SQLException
Returns:
Number of affected rows | Array of numbers in case of batch update.
-
Type
-
number
|
array
Example
var connection = await $.hdb.getConnection();
await connection.executeUpdate('INSERT INTO "DB_EXAMPLE"."ICECREAM" VALUES (?,?,?)','STRAWBERRY', 2.50, 64.18);
await connection.executeUpdate('UPDATE "DB_EXAMPLE"."CASH" SET INCOME=?', 64.18);
await connection.executeUpdate('DELETE FROM "DB_EXAMPLE"."ICECREAM" WHERE FLAVOR = ?', 'STRAWBERRY');
//Batch Insert
var argsArray = [["MINT", 3.50, 34.5], ["VANILLA", 2.50, 23.6], ["CHERRY", 4.50, 67.9]];
await connection.executeUpdate('INSERT INTO "DB_EXAMPLE"."ICECREAM" VALUES (?,?,?)', argsArray)
await connection.commit();
-
getLastWarning() → {Object|null}
-
Returns the warning of the most recently executed statement.
Throws:
-
Throws an error if the operation fails.
-
-
Type
-
$.hdb.SQLException
Returns:
The return value has two properties: 'code' and 'message'.
'null' is returned if the most recent statement didn't issue a warning.
-
Type
-
Object
|
null
-
async loadProcedure(schema, procedure) → {async function}
-
Returns a JavaScript function representing the stored procedure being loaded.
Parameters:
Name |
Type |
Description |
schema |
string
|
The schema to which the procedure belongs. |
procedure |
string
|
The name of the procedure. |
Returns:
-
Type
-
function
Examples
var connection = await $.hdb.getConnection();
// the procedure has signature 'DB_EXAMPLE'.'icecream.shop::sell'(IN flavor VARCHAR, IN quantity INTEGER, IN payment DECIMAL, OUT change DECIMAL)
var fnSell = await connection.loadProcedure('DB_EXAMPLE', 'icecream.shop::sell');
// call the procedure just like calling a javascript function
// sell three ice cream cups with chocolate flavor for 20 bucks each
var result = await fnSell('CHOCOLATE', 3, 20.00);
// alternatively use named parameters
var result = await fnSell({flavor: 'CHOCOLATE', quantity: 3, payment: 20.00});
// result is a $.hdb.ProcedureResult object
Table Parameter Support For Stored Procedures
// the procedure has signature 'DB_EXAMPLE'.'icecream.shop::lower_price_by'(IN ice_cream_prices prices_table_type, IN lower_price_by DOUBLE, OUT new_ice_cream_prices prices_table_type)
var fnlowerPrice = await connection.loadProcedure('DB_EXAMPLE', 'icecream.shop::lower_price_by');
// passing a $.hdb.ResultSet object
var price_list = await connection.executeQuery('SELECT * FROM "DB_EXAMPLE"."SOLD_FLAVORS_PRICES"');
var result = await fnlowerPrice(price_list, 1.50);
// passing a string containing the name of existing table in the database
var result = await fnlowerPrice('"DB_EXAMPLE"."SOLD_FLAVORS_PRICES"', 1.50);
// passing an array of JSON objects representing the rows in the table
var price_list = [{flavor: 'STRAWBERRY', price: 4.50}, {flavor : 'VANILLA', price: 3.50}, {flavor: 'CHOCOLATE', price: 5.50}];
var result = await fnlowerPrice(price_list, 1.50);
// We can get the table output parameter "new_ice_cream_prices" like any other output parameter:
var new_price_list = result.new_ice_cream_prices;
// new_price_list is a $.hdb.ResultSet object
-
async rollback()
-
Reverts the changes and ends the current transaction.
Throws:
-
Throws an error if the operation fails.
-
-
Type
-
$.hdb.SQLException
Example
var connection = await $.hdb.getConnection();
await connection.executeUpdate('UPDATE "DB_EXAMPLE"."ICECREAM" SET QUANTITY=? WHERE FLAVOR=?', 9, 'CHOCOLATE');
await connection.rollback();
-
setAutoCommit(enable)
-
Changes the auto-commit flag of the connection.
Parameters:
Name |
Type |
Description |
enable |
number
|
A number value, which can be either 0 (false) or 1 (true) |