SQLFetch関数が返すSQL_ERROR値について

このQ&Aのポイント
  • 現在、あるシステムの保守を行っている際に、odbc32.dllのSQLFetch関数がSQL_ERROR (-1) を返してエラーが発生しました。このエラーコードの原因として何が考えられるのでしょうか?インターネットでの情報収集では詳細な情報は得られず、ODBC関数のSQLGetDiagRecを使用してエラー詳細を取得する方法についても分からないとのことです。
  • SQLFetch関数が返すSQL_ERROR (-1) の値が発生し、エラーの詳細を取得する方法について質問があります。インターネットでの調査では詳細な情報が得られず、SQLGetDiagRec関数を使用する方法もわからないとのことです。
  • あるシステムの保守作業中に、SQLFetch関数がSQL_ERROR (-1) を返してエラーが発生しました。このエラーコードの原因や、エラーの詳細を取得する方法について質問があります。インターネットでの情報収集では詳細な情報が得られず、SQLGetDiagRec関数の使用方法も分からないとのことです。
回答を見る
  • ベストアンサー

SQLFetch 関数が返す SQL_ERROR 値について

現在、あるシステムの保守を行ってます。 ある顧客先で、そのシステムで利用するツールでエラー画面が発生しました。 原因を調査すると、odbc32.dll の SQLFetch 関数が SQL_ERROR (-1) を返却していたのが原因だというところまで突き止めました。 そこで質問ですが、通常、この値が返ってくるということは、原因として何が考えられるのでしょうか? インターネットでいろいろ調べたのですが、これ以上詳細な情報は得られません。 また、エラーコードだけでなく、この時のエラー詳細が取れるような ODBC 関数はないのでしょうか? いろいろ調べた結果、SQLGetDiagRec 関数で取れるような気もするのですが、サンプルコードの情報もなく、使い方が分からずじまいで、メモリエラーで VB が死んでしまいます。 発生環境 Windows 2000 Server SP2 SQL Server 2000 Enterprise Edition SP無 (8.00.194) MDAC 2.7 RTM (2.70.7713.4) 開発環境 Visual Basic 6.0 SP5 ご回答、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ALGO-9
  • ベストアンサー率66% (12/18)
回答No.1

Declare Function SQLError% Lib "ODBC32.DLL" ( , , , , , , , ) で取得できたと思います。

typeman
質問者

お礼

できました! ありがとうございます。

関連するQ&A

  • クライアントからVB2005 .netアプリでSQL Serverに接続できない

    プログラムの配布で困っています。 ■環境 【開発環境兼サーバー】 ・WindowsXP Professinal SP2 ・SQL Server 2005 Express ・Visual Basic 2005 Express ・Microsoft .net Framework 3.5 SP1 ・MDAC 2.8 【クライアントA】 ・WindowsXP Professinal SP2 ・SQL Server 2005 Express ・Visual Basic 2005 Express ・Microsoft .net Framework 3.5 SP1 ・MDAC 2.8 【クライアントB】 ・WindowsXP Home SP2 ・Microsoft .net Framework 3.5 SP1 ・MDAC 2.8 上記環境でプログラムを作成し、VBの 発行ウィザードで 配布プログラムを作成し、クライアントで実行してみました。 .netも無事インストールされ、プログラムを起動すると、 .net Frameworkから 「System.Data.SqlClient.SqlException: SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。 (provider: SQL ネットワーク インターフェイス, error: 26 - 指定されたサーバーまたはインスタンスの位置を特定しているときにエラーが発生しました)」 とでて起動できません。 開発環境兼サーバーではもちろんローカルのSQL Serverに接続できます。 クライアントAから開発環境兼サーバーへも接続できます。 クライアントBから開発環境兼サーバーへは接続できません。 ちなみに、クライアントBからODBCに設定もエラーで出来ませんでした。 データベースにはADO.netで使用してます。 いろいろとネットで検索して調べてみましたが、解決には 至りませんでした。 クライアントに何か足りないものがあるのでしょうか。 長くなりましたが、どうぞよろしくおねがいします。

  • 一般的なネットワークエラーについて

    WIN2000サーバにASPとSQLServerにてWEBシステムを構築しています。 ODBCにて接続を行っているのですが、度々下記のようなエラーが発生してしまいます。 [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]一般的なネットワーク エラーです。ネットワークのマニュアルを調べてください エラーは毎回出るというわけではなく、不定期に発生している状態です。MDACを最新版にしたり、ODBC設定を見直したりしたのですが、一向に改善しません。 もしなにか対策をご存知の方がいらっしゃいましたらご教授ねがいます。

  • SQL Serverのエラーについて

    サーバーの環境 OS:MS Windows NT Server 4.0 DB:MS SQL Server6.5 SQL Server 6.5 Service Pack 5a Windows NT 4.0 Service Pack 6a Internet Information Server 4.0 Internet Explorer 5.5 SQL Serverにクエリーを実行すると以下のエラーが発生します。 解決方法をご存知の方いましたらご教授願います。 Microsoft OLE DB Provider for ODBC Drivers エラー '80040e14' [Microsoft][ODBC SQL Server Driver][SQL Server]行のサイズが 2107 になり、作業テ-ブルの作成に失敗しました。テ-ブル 2014 内の 1 行の許容サイズを超えます。

  • エラーについて

    先ほどまで出来ていたSQL-serverなんですが、 新しくやろうとしたら SQL実行中に以下のエラーが発生しました。 エラーコード:0 [Microsoft][ODBC SQL Server Driver]通信リンクが失敗しました。 SQLステータス:08S01 というメッセージがでました。 コマンドプロンプトで入力したものだとおもったのですが・・・ 解りません。 大雑把かもしれませんがよろしくお願いします

  • SQL Serverで更新されない問題

    皆様、いつもお世話になっております。 以下の環境で、サーバのDBに対してクライアントより更新処理を行っております。 更新時にトランザクション制御(begin Tran 及び、Commit Tran)を行っておりますが、更新されません。 (更新時のエラーも発生しておりません。) トランザクション制御を外して更新すると、正常に更新されます。 なお、クライアントのMDACを最新にしてみたのですが、現象は変わりませんでした。 <サーバ環境> OS  :Windows 2008 Server R2 DBMS:SQL SERVER 2008 R2  <クライアント環境> OS  :Windows XP アプリ : VB6 SP5で開発したADO接続のプログラム 追記: サーバは最近新しいものに入れ替えたのですが、旧サーバでは、上記のような現象は 発生しておりません。 <旧サーバ環境> OS  :Windows 2003 Sever SP無し DBMS:Sql Server 2000 SP不明 些細な情報でもかまいませんので、情報のご提供をお願いします。

  • 環境:SQL-Server2005

    環境:SQL-Server2005 アプリケーション:Access2003 接続:DAO3.6 AccessよりSQL-Serverのテーブル、ローカルテーブルへ接続した場合、ODBC接続が 接続不可となる場合があります。 エラーとなりますが、エラー状態のまま処理を再開出来たりする場合がありあます。 常時発生する事象ではありませんが、発生率は低いですが、何か考えられる原因がございますでしょうか。

  • SQL Server 2005のインストールがうまくいきませんでした。

    OSは2000です。 Microsoft SQL Server 2005 Express Edition Service Pack 1.EXEをインストールしようとしたところ 「システム構成チェック」の時に「警告」と「エラー」が出てしまいました。 内容は、 *************************************************************** - ハードウェアの最小要件 (警告) メッセージ * ハードウェアの最小要件 * 現在のシステムは、この SQL Server リリースの推奨されるハードウェア要件を満たしていません。ハードウェアとソフトウェアの要件の詳細については、Readme ファイルまたは SQL Server Books Online を参照してください。 - MDAC バージョンの最小要件 (エラー) メッセージ * MDAC バージョンの最小要件 * システムには、このリリースの SQL Server に必要なバージョンの Microsoft Data Access Components (MDAC) が含まれていません。詳細については、Microsoft SQL Server Books Online の「SQL Server 2005 をインストールするためのハードウェアおよびソフトウェアの必要条件 (Hardware and Software Requirements for Installing SQL Server 2005)」を参照してください。 *************************************************************** です。 結局終了ボタンを押して終了しました。 自分なりに調べてみたのですがどうすればいいのかよくわかりません。 「アプリケーションの追加と削除」を見ると ・Microsoft Data Access Components KB870669 ・Microsoft .NET Framework 2.0 Service Pack 1 ・Microsoft SQL Server 2005 Native Client ・Microsoft SQL Server セットアップ サポートファイル(英語) ・MSXML 6.0 Parser は入っていますが 本体の「Microsoft SQL Server 2005」がないことからインストールに失敗したのかと思いますが どうすればいいでしょうか? ご回答よろしくお願いします。

  • SQL Serverへエクスポートする時のエラーメッセージ

    お世話になります。 ODBC経由のSQL Serverへのエクスポート時ですが、以下のエラーメッセージが出ます。知っていらっしゃる方、教えてください。 ***************************** [Microsoft][ODBC SQL Server Driver][SQL Server]オブジェクト名 'オブジェクト名' は無効です。 ***************************** SQL Serverのエラーメッセージの解釈のホームページを知っていらっしゃる方は教えてください。 よろしくお願いします。

  • SQLサーバー接続について

    DB初心者です。 ODBCからSQLサーバーへのアクセスを設定したく、奮闘しておりますが うまくいかず困っております。 先方から支給されたのは、 DB名、ID、パスワード、ホスト名、ポート番号、MySQLのバージョン5.0.90で、 その通り設定したつもりが、以下のようなエラーが出てソース作成できません。 --- 接続できませんでした。: SQLState: '01000' SQL Server エラー: 11001 [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]ConnectionOpen(Connect()). 接続できませんでした。: SQLState: '08001' SQL Server エラー: 6 [Microsoft][ODBC SQL Server Driver][TCP/IPSockets]指定された SQL Server が見つかりません。 --- エラー番号で検索してみても原因がわからず・・・ 詳しい方いらっしゃいましたらお願いいたしますm(__)m

  • sqlのエラーハンドリングについて質問です。

    シェルからsqlplusを実行し、そのsqlplusで発生したエラーをハンドリングするために、 出力内容をORACLEエラーコード(ORA-xxxxx)、SQLPLUSエラーコード(SP2-xxxxx) で検索して判定しています。 また、SQLで何らかのエラーが発生した際に処理を終了させるために、 SQL実行前に whenever sqlerror exit; whenever oserror exit; を定義しています。 何らかのエラーが発生した際は、ORACLEエラーコード(ORA-xxxxx)、SQLPLUSエラーコード(SP2-xxxxx) が出力されるため、エラーハンドリングは可能と考えているのですが、 sqlplusのstartコマンドでsqlファイルを実行した場合のみ、エラーコードが出 力されないため、ハンドリングできません。 ■実行例 SQL> start 存在しないsqlファイル O/Sメッセージ:No such file or directory 切断しました。 試しにwhenever oserror exit;の記述を削除したところ SP2-0130が出力されエラーハンドリングできました。 whenever oserror exit; の記述があるとエラーコードが出力されないのはなぜでしょうか??

専門家に質問してみよう