UNPKG

ibm_db

Version:

IBM DB2 and IBM Informix bindings for node

106 lines (93 loc) 3.25 kB
var common = require("./common") , ibmdb = require("../") , pool = new ibmdb.Pool() , assert = require("assert") , cn = common.connectionString ; process.on('unhandledRejection', async (reason, p) => { console.debug('Unhandled Error: ', reason, p) }); main(); async function main() { await test1(); await test2(); await test3(); await test4(); } async function test1() { let invalidConnStr = "database=wrongdb;" + cn ; let conn = await ibmdb.open(invalidConnStr).catch((e) => { console.log(e); }); if(conn) console.log(conn); console.log("Test1 done."); } async function test2() { try { let conn = await ibmdb.open(cn); let data = await conn.query("select 1 from sysibm.sysdummy1"); console.log("data = ", data); await conn.query("drop table mytab").catch((e) => {console.log(e);}); await conn.query("create table mytab(c1 int, c2 varchar(10))"); await conn.query("insert into mytab values (?, ?)", [3, 'rocket']); let stmt = await conn.prepare("select * from mytab"); let result = await stmt.execute(); data = await result.fetchAll(); console.log("result = ", data); await result.close(); await stmt.close(); await conn.close(); } catch(e) { console.log(e); } console.log("Test2 done."); } async function test3() { const query = 'update mytab set c2=? WHERE c1=?;' pool.setMaxPoolSize(2); // Max no of active connections. await pool.initAsync(1, cn).catch((err) => { console.log(err); if(typeof err === 'object') assert.equal(err.message, undefined); }); try { let conn = await pool.open(cn); let data = await conn.query("select 1 from sysibm.sysdummy1"); console.log("data = ", data); await conn.query("drop table mytab"); await conn.query("create table mytab(c1 int, c2 varchar(10))"); await conn.query("insert into mytab values (?, ?)", [1050, 'rocket']); // Test for issue #960 let stmt = await conn.prepare(query) let result = await stmt.executeNonQuery(['canceled', 1050]) console.log("No of updated row = ", result) assert.equal(1, result); stmt = await conn.prepare("select * from mytab"); result = await stmt.execute(); data = await result.fetchAll(); console.log("result = ", data); assert.equal(data[0].C2, 'canceled'); await result.close(); await stmt.close(); console.log("Test for issue #960 is done."); // Test for issue #996 try { await conn.query("insert into mytab values (?, ?)", [[1050, 'rocket']]); } catch (err) { console.log("Got error, throwing it."); throw err; } data = await conn.query("select * from mytab"); console.log("data = ", data); console.log("Test for issue #996 is done."); // Clean up await conn.query("drop table mytab"); await conn.close(); } catch(e) { console.log(e); } await pool.close(); console.log("Test3 done."); } async function test4() { let invalidSQL = ["not an sql"] ; let conn = await ibmdb.open(cn); await conn.prepare(invalidSQL).catch((e) => { console.log(e); }); console.log("Test4 done."); }