From 11:00 PM CDT Friday, Nov 8 - 2:30 PM CDT Saturday, Nov 9, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
Home
Support
LabWindows/CVI SQL Toolkit の関数を使用したとき、「Native error code message」 が出るのはなぜですか
LabWindows/CVI SQL Toolkit の関数を使用したとき、「Native error code message」 が出るのはなぜですか
使用ソフトウェア: LabWindows/CVI Add-ons>>Enterprise Connectivity Toolset
使用ソフトウェア・バージョン: N/A
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: N/A
問題: LabWindows/CVI SQL Toolkit の関数を呼び出すと、「Native error code message」というエラーが出ることがあります。これはなぜですか。
解決策: 「Native error code」は下位のデータベースや Windows ADO が返すエラーです。この種のエラーは SQL Toolkit や CVI 自体のコードが間違っているのではなく、データベースに対する操作がサポートされていない場合がほとんどです。もっとも多いのは不適切な SQL ステートメントをデータベースに送ったり、特定の関数を誤った方法で実行したりする場合です。
ナショナルインスツルメンツは、特定のデータベースがサポートする、またはサポートしないといった内容の技術サポートはいたしかねます。この種のサポートは、各データベースのベンダーが、より適切な対応ができるからです。SQL Toolkit はデータベースで発生したエラーや不適切な操作があったことを検出し、エラーとして開発者に対して情報を提供します。
関数呼び出しで特定のエラーが出ているかどうか確認するには、以下の内容をご参照ください。これは LabWindows/CVI SQL Toolkit Reference Manual から引用し、和訳したものです。
SQL ライブラリ関数は、3種類の戻り値があります。実行結果のコード、ハンドル、データです。実行結果のコードを DB_SUCCESS 定数と比較することで、エラーが起きたか確認できます。ハンドルはデータベースとの接続や SQL ステートメントを参照します。関数がハンドルを返す場合、ハンドルの値が 0 以下であればエラーであることを意味します。その後、DBError 関数を呼び出して、エラー番号を取得します。また DBErrorMessage 関数を呼び出すと、エラーメッセージを取得できます。DBColumnName のように、データを返す関数では、DBError 関数を呼び出してエラーがあったかどうかを確認する必要があります。
hdbc = DBConnect (hdbc);
if (hdbc <= 0) {
errorCode = DBError();
errorMsg = DBErrorMsg();
printf("Error number %d\n%s\n", errorCode, errorMsg);
}
エラーが Native error (通常は DBError の戻り値が DB_ODBC_ERROR、DB_DBSYS_ERROR、DB_AUTOMATION_ERROR) だった場合、 DBNativeError 関数を呼び出して、使用中のデータベースや ADO のエラーコードを取得し、データベースのマニュアル等で、どのようなエラーが起こったか確認します。
関連リンク: Product Manuals: LabWindows/CVI SQL Toolkit Reference Manual (January 2002)
Microsoft Universal Data Access
添付:
報告日時: 07/25/2001
最終更新日: 06/29/2005
ドキュメントID: 2BOERBEV
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.