UNPKG

ifx_db

Version:

IBM Informix bindings for node

81 lines (68 loc) 2.6 kB
var ifxdb = require("../") , common = require("./common") , assert = require("assert") , cn = common.connectionString; var stmt0 = {}; var stmt1 = {}; var stmt2 = {}; var queryExecuted = 0; stmt1.sql = 'SELECT COUNT(C1) FROM FINAL TABLE(UPDATE T1 SET C2=?, C3=? WHERE C1=1)'; stmt1.params = ['Joe', 'Tim']; stmt1.noResults = false; stmt2.sql = 'SELECT COUNT(C1) FROM FINAL TABLE(UPDATE T1 SET C2=?, C3=? WHERE C1=1)'; stmt2.params = ['Jane', 'Joan']; stmt2.noResults = false; ifxdb.debug(true); ifxdb.open(cn, function(err, conn1) { if (err) console.log(err); assert.equal(err, null); stmt0.sql = 'DROP TABLE T1'; stmt0.noResults = true; try{ conn1.querySync(stmt0.sql); } catch(e) { } stmt0.sql = 'CREATE TABLE T1 (C1 INT PRIMARY KEY NOT NULL, C2 CHAR(50), C3 CHAR(50))'; conn1.querySync(stmt0.sql); stmt0.sql = "INSERT INTO T1 VALUES (1, 'ABCDEF', 'GHIJK')"; conn1.querySync(stmt0.sql); ifxdb.open(cn, function(err, conn2) { if (err) return console.log(err); conn1.beginTransaction(function(err) { if (err) return console.log(err); console.log('Transaction 1 opened'); conn2.beginTransaction(function(err) { if (err) return console.log(err); console.log('Transaction 2 opened'); conn1.query(stmt1, function(err, data) { console.log('Query 1 executed'); if (err) { conn1.rollbackTransaction(); console.log(err); } else { conn1.commitTransaction(); console.log('<<< DATA >>>:', data); } queryExecuted++; }); conn2.query(stmt2, function(err, data) { console.log('Query 2 executed'); if (err) { conn2.rollbackTransaction(); console.log(err); } else { conn2.commitTransaction(); console.log('<<< DATA >>>:', data); assert.deepEqual(data, [ { '1': 1 } ]); conn2.closeSync(); } queryExecuted++; }); }); }); }); var interval = setInterval(function(){ if(queryExecuted === 2) { conn1.querySync("drop table T1"); conn1.closeSync(); clearInterval(interval); } }, 1000); });