问题标签 [node-odbc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - OS X 上 node-odbc 的 npm cflags
在 Linux 上安装 node-odbc 很好,但在 OS X 上找不到包含文件:
binding.gyp 中的 cflags 设置为“-g”、“-I/PATH_TO_UNIXODBC/include”
但它找不到任何东西:
../src/odbc.h:29:10:致命错误:找不到“sql.h”文件
sql.h 存在于 /PATH_TO_UNIXODBC/include
node.js - 在 Windows 上为 NWjs 安装节点 ODBC 失败
我正在将 nodejs 和 node webkit 用于 Windows 应用程序(node-webkit 现在是 NWjs)。
我安装了node-odbc
模块并使用包含的测试来查看它是否有效。通过命令行(“node aTestFile.js”)测试数据库连接工作正常,但是当我尝试从 node-webkit 内的 index.html 中调用它时,我收到以下错误:
如果我尝试将该文件添加为 package.json 中的 node-main,则不会发生任何事情。
我需要一点帮助。我究竟做错了什么?
javascript - 试验 node-webkit:node-odbc 失败
我正在尝试使用node-webkit创建桌面应用程序。该应用程序查询 Oracle 数据库。为了建立与数据库的连接,我使用node-odbc。
我使用 node.js 进行了初步测试,以确保我可以使用我安装的 Oracle 驱动程序实际查询数据库。这是我所做的:
index.js:
当我运行它时,我得到以下输出,如预期的那样:
然后我创建了以下 node-webkit 包:
index.html:
package.json:
但是当我在 node-webkit 中运行它并打开控制台时,会显示以下错误:
- 我正在使用 nw.js v0.12.2。
sails.js - 在 Sails 应用程序中运行 npm install odbc 会产生错误?
我正在尝试在我的 Sails 应用程序中安装node-odbc
包(https://github.com/wankdanker/node-odbc )。
根据我在服务器上安装和配置 unixobdc 的文档,但是当我在应用程序目录中执行npm install odbc --save时,出现以下错误:
npm 错误!Linux 3.19.0-58-generic npm ERR!argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "odbc" "--save" npm 错误!节点 v4.4.3 npm 错误!npm v3.8.7
npm 错误!无法设置未定义的 npm ERR 的属性“水线标准”!npm 错误!如果您需要帮助,您可以在以下位置报告此错误:npm ERR!*LINK{//github.com/npm/npm/issues} npm 错误!Linux 3.19.0-58-generic npm ERR!argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "odbc" "--save" npm 错误!节点 v4.4.3 npm 错误!npm v3.8.7
npm 错误!无法设置未定义 npm ERR 的属性“水线光标”!npm 错误!如果您需要帮助,您可以在以下位置报告此错误:npm ERR!*LINK{//github.com/npm/npm/issues} npm 错误!Linux 3.19.0-58-generic npm ERR!argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "odbc" "--save" npm 错误!节点 v4.4.3 npm 错误!npm v3.8.7
npm 错误!无法设置未定义 npm ERR 的属性“水线错误”!npm 错误!如果您需要帮助,您可以在以下位置报告此错误:npm ERR!*LINK{//github.com/npm/npm/issues}
npm 错误!请在任何支持请求中包含以下文件:npm ERR!/var/www/sails.dev/secApp/npm-debug.log
关于为什么会这样或如何让这个包在 Sails 中工作的任何想法?
node.js - 适用于 Windows 的 Node js ODBC - 替代品
我需要在 32 位 Windows 2008 服务器上运行 node.js 并连接到 Informix DB。
我只能将 node-odbc 与 node v0.10x 一起使用,现在该版本即将退役。
还有其他选择吗?我无法使用 node.js v4 或更高版本安装它。
node.js - node-odbc 导致错误“CLI0002W 数据被截断”
我正在使用node-odbc将基于 Node.js 的应用程序连接到旧版 IBM DB2 数据库。
- 在 Windows 7 上
- DB2 ODBC 驱动程序是 32 位的,因此 node-odbc 二进制文件是用
node-gyp clean configure build --arch=ia32 --msvs_version=2015
- 32 位 Node.js 4.4.5
这主要工作正常。但是,由于以下问题,我目前在 node-odbc 二进制文件( binding.gyp 中的标志 UNICODE )中禁用了 Unicode :
如果我启用 UNICODE,我可以
- 使用简单的 SQL 语句(如 query =
select * from sysibm.sysdummy1
)正确检索数据 - 使用非字符串参数绑定运行查询(如 query =
select * from syscat.tables where tableid = ?
、 bindings =[0]
;
但是,如果我使用字符串参数(如 query = select * from syscat.tables where tabname = ?
、 bindings = ['SYSDUMMY1']
)运行查询,则 ODBC 驱动程序会抛出错误消息
{ [错误:[IBM][CLI Driver] CLI0002W 数据被截断。SQLSTATE=01004] 错误:[ { message: '[IBM][CLI Driver] CLI0002W 数据被截断。SQLSTATE=01004',状态:'01004' } ],错误:'[node-odbc] SQL_ERROR',消息:'[IBM][CLI Driver] CLI0002W 数据被截断。SQLSTATE=01004',状态:'01004' }
它在 IBM 文档中的解释对我没有帮助。
我查看了相关 node-odbc 代码中启用 UNICODE 的片段,这些片段将字符串写入缓冲区,缓冲区将被传递给 ODBC 驱动程序:
显然,string->Write
将带有空终端的字符串写入缓冲区ParameterValuePtr。SQL_NTS表示以空值结尾的字符串(请参阅IBM 文档中对StrLen_or_IndPtr的解释)。
从错误消息来看,我假设缓冲区的大小不正确,其计算公式为(length * sizeof(uint16_t)) + sizeof(uint16_t)
(Unicode 字符的字节长度 + 1 个附加字符,空终止符):
- 要么它太小,所以 ODBC 驱动程序找不到终止字符串的空字符
- 或者太大,所以驱动程序可能会抱怨空字符出现在缓冲区结束之前。这真的是一个假设!
所以:我想知道如何更正代码,以便可以将类似字符串的参数传递给 ODBC 驱动程序。有任何想法吗?
oracle - 节点 odbc SSL 支持
我正在尝试使用在 Oracle 数据库服务器上配置 SSL的 node-odbc节点模块从 Linux 机器连接到 Oracle 数据库。但是连接挂起,一段时间后它返回错误。似乎 node-odbc 不支持 SSL 加密。
返回错误:
以下是环境详细信息:
Linux 发行版名称和版本:
司机经理:
ODBC 驱动程序:
连接字符串:
node-odbc 是否支持 SSL 加密?
sql - 带回调的数据库事务
我试图弄清楚如何正确设置此代码块,以便提交函数将等到所有行都插入。目前我正在阅读 csv 并需要在表格中每列插入一个新行。为此,我还需要在父表中添加一行。在我调用提交之前,我需要完成所有这些。我还没有掌握回调所以请温柔。
javascript - node-odbc TIMESTAMP 问题(转换值)
我正在使用 node-odbc 连接到使用 ODBC 驱动程序的 Oracle 数据库。
到目前为止,我的测试进展顺利,除了 TIMESTAMP 的问题。
我正在就这个问题寻求您的帮助,您能否就我的问题提供一些意见?任何帮助都会非常显着。
当我尝试检索 TIMESTAMP 值(列被定义为没有任何 ZONE 信息的只是 TIMESTAMP)时,node-odbc 正在“偏移”基于时区的值。但是使用相同 ODBC 驱动程序的 ODBC 应用程序正在返回正确的结果。
所以,我想了解为什么 node-odbc(可能是内部 NaN 方法或 JS 对象)对时间戳值进行这种转换?为什么它不能只返回从驱动程序那里得到的任何东西?
node-odbc 应用程序可以用来获取未转换值的任何设置/配置选项?
谢谢, 拉贾塞卡
mysql - node-odbc 仅在 macOS 上返回列值的第一个字符
我在这里有一个奇怪的问题,似乎只影响 macOS,而不是 Windows。
我们有一个 Electron 应用程序,node-odbc
用于从 MySQL 数据库中提取一些记录。
我通过 MySQL 驱动程序连接到 ODBC 连接很好,但是当我运行如下查询时:
任务表的结果字段仅返回第一个字符。
例如,下面是 MySQL 表中列和值的样子:
以下是针对同一记录返回到控制台的内容:
当我使用 iODBC Demo Ansi 连接并运行相同的查询时,我得到了正确的完整值:
所以这让我认为 ODBC 连接很好,它可能与 node-odbc 处理数据的方式有关。
更奇怪的是,当我在 Windows 上运行它时,它可以通过 node-odbc 返回正确的完整值。
我在图书馆打开了一个问题,node-odbc
希望有人也有线索:https ://github.com/w1nk/node-odbc/issues/120
谢谢你的帮助!