問題タブ [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 に答える
381 参照

node.js - Windows での NWjs のノード ODBC インストールが失敗する

Windowsアプリにnodejsとnode webkitを使用しています(node-webkitは現在NWjsです)。

モジュールをインストールしnode-odbc、含まれているテストを使用して動作するかどうかを確認しました。データベース接続のテストは、コマンド ライン ("node aTestFile.js") 経由で正常に機能しましたが、node-webkit 内の index.html 内から呼び出そうとすると、次のエラーが表示されます。

そして、そのファイルを node-main として package.json に追加しようとしても、何も起こりません。

少し助けが必要です。私は何を間違っていますか?

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 ERR! ノード v4.4.3 npm ERR! npm v3.8.7

npm エラー! 未定義の npm ERR のプロパティ 'waterline-criteria' を設定できません! npm エラー! ヘルプが必要な場合は、npm ERR! でこのエラーを報告してください。*LINK{//github.com/npm/npm/issues} npm ERR! Linux 3.19.0-58-generic npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "odbc" "--save" npm ERR! ノード v4.4.3 npm ERR! npm v3.8.7

npm エラー! 未定義の npm ERR のプロパティ 'waterline-cursor' を設定できません! npm エラー! ヘルプが必要な場合は、npm ERR! でこのエラーを報告してください。*LINK{//github.com/npm/npm/issues} npm ERR! Linux 3.19.0-58-generic npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "odbc" "--save" npm ERR! ノード v4.4.3 npm ERR! npm v3.8.7

npm エラー! 未定義の npm ERR のプロパティ 'waterline-errors' を設定できません! 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 - Node js ODBC for Windows - 代替案

32 ビット Windows 2008 サーバーで node.js を実行し、Informix DB に接続する必要があります。

node-odbc はノード v0.10x でしか使用できませんでしたが、現在、そのバージョンは廃止されようとしています。

他の代替手段はありますか?これを node.js v4 以降ではインストールできません。

0 投票する
0 に答える
416 参照

node.js - node-odbc がエラー「CLI0002W Data truncated」を引き起こす

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 バイナリで Unicode を無効にしています ( binding.gypの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] エラー: [ { メッセージ: '[IBM][CLI Driver] CLI0002W データが切り捨てられました。SQLSTATE=01004'、状態: '01004' } ]、エラー: '[node-odbc] SQL_ERROR'、メッセージ: '[IBM][CLI Driver] CLI0002W データが切り捨てられました。SQLSTATE=01004', 状態: '01004' }

IBMのドキュメントでの説明は役に立ちません。

ODBC ドライバーに渡されるバッファーに文字列を書き込む、関連する node-odbc コードの UNICODE 対応スニペットを調べました。

どうやら、string->Writeヌル終端を含む文字列をバッファParameterValuePtrに書き込みます。SQL_NTSはヌル終了ストリングを意味します ( IBM 資料のStrLen_or_IndPtrの説明を参照してください)。

エラー メッセージから判断すると、バッファーのサイズが正しいとは限りません。これは、次のように計算され(length * sizeof(uint16_t)) + sizeof(uint16_t)ます (Unicode 文字のバイト単位の文字列の長さ + 1 つの追加文字、null ターミネータ)。

  1. 小さすぎるため、ODBC ドライバーは文字列を終了するヌル文字を見つけることができません。
  2. または大きすぎるため、ドライバーは、ヌル文字がバッファーの終わりの前に来ると文句を言うかもしれません。これは本当に仮定です!

そのため、文字列のようなパラメーターを ODBC ドライバーに渡すことができるように、コードをどのように修正する必要があるのだろうか。何か案は?