我的项目electron版本号是2.0.18,对应nodejs版本为8.9.3,下载的ibm_db为最新版本v2.5.1。
下载的ibm_db模块需要重新编译才能进行使用。
编译条件:
- 安装C++编译工具。
- node-gyp。
- python2.X
前面编译oracledb模块时候已经安装。安装说明见 NodeJs中oracledb连接数据库
编译ibm_db
npm install ibm_db
下载速度会很慢,因为需要下载一个clidriver,自己可以手动下载然后配置到环境变量,执行上面的安装时就会自动跳过下载clidriver。clidriver的下载路径
链接:https://pan.baidu.com/s/1CYid_b99hEwOiwvj4SRvYg
提取码:vt3n
链接永久有效。
环境变量配置:IBM_DB_HOME=‘clidriver路径’。
下载完成后切换目录到cd node_modules/ibm_db。
执行:
node-gyp 版本3.8.0
安装node-gyp
npm install node-gyp@3.8.0 --global
node-gyp clean e
node-gyp configure --target=v8.9.3 --arch=x64 --dist-url=https://atom.io/download/electron --msvs_version=2015 --IS_DOWNLOADED=true
–target后面为electron版本号。第二条命令需要连接外网下载文件,如果下载失败请看下自己是否可以连接到外网。成功后进入到build目录,打开odbc_bindings.vcxproj文件,找到AdditionalDependencies标签,删除对odbc32.lib的所有引用。
kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;DelayImp.lib
管理员打开cmd,切换目录到 ibm_db下,执行:
msbuild build/binding.sln /nologo /p:Configuration=Release;Platform=x64
如果提示msbuild不是内部命令,先去配置环境变量,我的项目用的v140。
编译成功后,将clidriver文件复制一份放到ibm_db\installer目录下,执行npm start发现控制台已经没有错误,可以正常使用了。
访问数据库查询数据中文乱码需要设置环境变量:DB2CODEPAGE=1028
- 如果设置环境变量导致数据库连接失败则可不配置DB2CODEPAGE,查询出来乱码解决方案,代码中加入
process.env.DB2CODEPAGE = process.env.DB2CODEPAGE || 1208;
编译ibm_db所需文件下载地址
文件包含C++编译工具:
BuildTools_Full_2015.exe
python-2.7.18.amd64.msi
直接安装即可;
visualcppbuildtools_full.exe 安装会提示选中MSBuild.msi,该文件从下面文件下载即可
链接:https://pan.baidu.com/s/1QbqqQGlirDwJcW1-rM9Wmw
提取码:ev2w