Disclaimer: this library is under active development. Use at your own risk.
Currently this dialect has limited functionality compared to the Knex built-in dialects. Below are some of the limitations:
- No transaction support
- No streaming support
- Possibly other missing functionality
- Query building
- Query execution (see Limitations)
npm install knex-db2
npm install odbc see ODBC dependencies if you run into any issues
npm install knex
const Knex = require('knex')
const Db2Dialect = require('knex-db2')
const knex = Knex({
client: Db2Dialect,
connection: {
host: 'localhost',
database: 'knextest',
port: 50000,
user: 'db2inst1',
password: 'db2inst1-pwd',
driver: '{IBM Cli Driver}',
connectionStringParams: {
ALLOWPROCCALLS: 1,
CMT: 0
}
},
pool: {
min: 2,
max: 10
}
})
const query = knex
.select('*')
.from('table1')
.where('x', 'y')
query
.then(result => console.log(result))
.catch(err => console.error(err))
.finally(() => process.exit())- make:
sudo apt install make - g++:
sudo apt install g++ - unix odbc:
sudo apt-get install unixodbc unixodbc-dev
If you don't know the name of your installed driver, then look in look in odbcinst.ini. You can find the full path of the file by running odbcinst -j.
There you should see an entry like the one below:
[IBM i Access ODBC Driver 64-bit] <= driver name enclosed in square brackets
Description=IBM i Access for Linux 64-bit ODBC Driver
Driver=/opt/ibm/iaccess/lib64/libcwbodbc.so
Setup=/opt/ibm/iaccess/lib64/libcwbodbcs.so
Threading=0
DontDLClose=1
UsageCount=1
If that still doesn't work, then unixodbc is probably looking for the config files in the wrong directory. A common case is that the configs are in /etc but your system expects them to be somewhere else. In such case, override the path unixodbc looks in via the ODBCSYSINI and ODBCINI environment variables.
E.g., ODBCINI=/etc ODBCSYSINI=/etc.
https://github.com/ibmdb/node-ibm_db#systemDetails
- Extract downloaded file. This will create a
clidriverfolder with the driver contents - Copy this folder to wherever your system keeps drivers. If you're not sure where to put it, just copy it to
/opt/ibm. - Add the configuration your
/etc/odbcinst.inifile. Below is what the contents of the file should look like if your odbc path is/opt
[IBM Cli Driver]
Description=IBM CLI Driver for Linux 64-bit
Driver=/opt/ibm/clidriver/lib/libdb2.soSetup=libdb2.so.1
hreading=0
DontDLClose=1
UsageCount=1