问题标签 [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.

0 投票
1 回答
233 浏览

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

0 投票
1 回答
381 浏览

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,则不会发生任何事情。

我需要一点帮助。我究竟做错了什么?

0 投票
1 回答
349 浏览

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。
0 投票
1 回答
237 浏览

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 中工作的任何想法?

0 投票
1 回答
1216 浏览

node.js - 适用于 Windows 的 Node js ODBC - 替代品

我需要在 32 位 Windows 2008 服务器上运行 node.js 并连接到 Informix DB。

我只能将 node-odbc 与 node v0.10x 一起使用,现在该版本即将退役。

还有其他选择吗?我无法使用 node.js v4 或更高版本安装它。

0 投票
0 回答
416 浏览

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,我可以

  1. 使用简单的 SQL 语句(如 query = select * from sysibm.sysdummy1)正确检索数据
  2. 使用非字符串参数绑定运行查询(如 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将带有空终端的字符串写入缓冲区ParameterValuePtrSQL_NTS表示以空值结尾的字符串(请参阅IBM 文档中对StrLen_or_IndPtr的解释)。

从错误消息来看,我假设缓冲区的大小不正确,其计算公式为(length * sizeof(uint16_t)) + sizeof(uint16_t)(Unicode 字符的字节长度 + 1 个附加字符,空终止符):

  1. 要么它太小,所以 ODBC 驱动程序找不到终止字符串的空字符
  2. 或者太大,所以驱动程序可能会抱怨空字符出现在缓冲区结束之前。这真的是一个假设!

所以:我想知道如何更正代码,以便可以将类似字符串的参数传递给 ODBC 驱动程序。有任何想法吗?

0 投票
1 回答
208 浏览

oracle - 节点 odbc SSL 支持

我正在尝试使用在 Oracle 数据库服务器上配置 SSL的 node-odbc节点模块从 Linux 机器连接到 Oracle 数据库。但是连接挂起,一段时间后它返回错误。似乎 node-odbc 不支持 SSL 加密。

返回错误:

以下是环境详细信息:

Linux 发行版名称和版本:

司机经理:

ODBC 驱动程序:

连接字符串:

node-odbc 是否支持 SSL 加密?

0 投票
3 回答
1780 浏览

sql - 带回调的数据库事务

我试图弄清楚如何正确设置此代码块,以便提交函数将等到所有行都插入。目前我正在阅读 csv 并需要在表格中每列插入一个新行。为此,我还需要在父表中添加一行。在我调用提交之前,我需要完成所有这些。我还没有掌握回调所以请温柔。

0 投票
0 回答
98 浏览

javascript - node-odbc TIMESTAMP 问题(转换值)

我正在使用 node-odbc 连接到使用 ODBC 驱动程序的 Oracle 数据库。

到目前为止,我的测试进展顺利,除了 TIMESTAMP 的问题。

我正在就这个问题寻求您的帮助,您能否就我的问题提供一些意见?任何帮助都会非常显着。

当我尝试检索 TIMESTAMP 值(列被定义为没有任何 ZONE 信息的只是 TIMESTAMP)时,node-odbc 正在“偏移”基于时区的值。但是使用相同 ODBC 驱动程序的 ODBC 应用程序正在返回正确的结果。

所以,我想了解为什么 node-odbc(可能是内部 NaN 方法或 JS 对象)对时间戳值进行这种转换?为什么它不能只返回从驱动程序那里得到的任何东西?

node-odbc 应用程序可以用来获取未转换值的任何设置/配置选项?

谢谢, 拉贾塞卡

0 投票
0 回答
104 浏览

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

谢谢你的帮助!