問題タブ [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 - Windows での NWjs のノード ODBC インストールが失敗する
Windowsアプリにnodejsとnode webkitを使用しています(node-webkitは現在NWjsです)。
モジュールをインストールしnode-odbc
、含まれているテストを使用して動作するかどうかを確認しました。データベース接続のテストは、コマンド ライン ("node aTestFile.js") 経由で正常に機能しましたが、node-webkit 内の index.html 内から呼び出そうとすると、次のエラーが表示されます。
そして、そのファイルを node-main として package.json に追加しようとしても、何も起こりません。
少し助けが必要です。私は何を間違っていますか?
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 で動作させる方法についてのアイデアはありますか?
node.js - Node js ODBC for Windows - 代替案
32 ビット Windows 2008 サーバーで node.js を実行し、Informix DB に接続する必要があります。
node-odbc はノード v0.10x でしか使用できませんでしたが、現在、そのバージョンは廃止されようとしています。
他の代替手段はありますか?これを node.js v4 以降ではインストールできません。
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 を有効にすると、
- 単純な 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] エラー: [ { メッセージ: '[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 ターミネータ)。
- 小さすぎるため、ODBC ドライバーは文字列を終了するヌル文字を見つけることができません。
- または大きすぎるため、ドライバーは、ヌル文字がバッファーの終わりの前に来ると文句を言うかもしれません。これは本当に仮定です!
そのため、文字列のようなパラメーターを ODBC ドライバーに渡すことができるように、コードをどのように修正する必要があるのだろうか。何か案は?