診断メッセージ
各 SQLSTATE で診断メッセージが返されます。 同じ SQLSTATE は、多くの場合、さまざまなメッセージで返されます。 たとえば、SQL 構文のほとんどのエラーでは、SQLSTATE 42000 (構文エラーまたはアクセス違反) が返されます。 ただし、各構文エラーは、異なるメッセージで記述される可能性があります。
サンプル診断メッセージは、付録 A の SQLSTATEs の表および各関数のエラー列に一覧表示されます。 ドライバーはこれらのメッセージを返すことができますが、データ ソースから渡されたメッセージを返す可能性が高くなります。
通常、アプリケーションは、SQLSTATE およびネイティブ エラー コードと共に、ユーザーに診断メッセージを表示します。 これは、ユーザーとサポート担当者が問題の原因を特定するのに役立ちます。 メッセージに埋め込まれたコンポーネント情報は、これを行う際に特に役立ちます。
診断メッセージは、ドライバー、ゲートウェイ、ドライバー マネージャーなどの ODBC 接続のデータ ソースとコンポーネントから送信されます。 通常、データ ソースは ODBC を直接サポートしていません。 したがって、ODBC 接続のコンポーネントがデータ ソースからメッセージを受信する場合は、データ ソースをメッセージのソースとして識別する必要があります。 また、メッセージを受信したコンポーネントとして自身を識別する必要もあります。
エラーまたは警告の原因がコンポーネント自体である場合は、診断メッセージでこれを説明する必要があります。 したがって、メッセージのテキストには 2 つの異なる形式があります。 データ ソースで発生しないエラーと警告の場合、診断メッセージでは次の形式を使用する必要があります。
[ vendor-identifier ][ ODBC-component-identifier ] component-supplied-text
データ ソースで発生するエラーと警告の場合、診断メッセージでは次の形式を使用する必要があります。
[ vendor-identifier ][ ODBC-component-identifier ][ data-source-identifier ] data-source-supplied-text
次のテーブルは、それぞれの要素の意味を示しています。
要素 | 意味 |
---|---|
ベンダー識別子 | エラーまたは警告が発生したコンポーネント、またはデータ ソースから直接エラーまたは警告を受信したコンポーネントのベンダーを識別します。 |
ODBC-component-identifier | エラーまたは警告が発生したコンポーネント、またはデータ ソースから直接エラーまたは警告を受信したコンポーネントを識別します。 |
データ ソース識別子 | データ ソースを識別します。 ファイルベースのドライバーの場合、これは通常ファイル形式で、Xbase[1]などで、 DBMS ベースのドライバーの場合、これは DBMS 製品です。 |
component-supplied-text | ODBC コンポーネントによって生成されます。 |
data-source-supplied-text | データ ソースによって生成されます。 |
[1] この場合、ドライバーはドライバーとデータ ソースの両方として動作します。
角かっこ ([ ]) はメッセージに含める必要があり、オプションの項目を示すものではありません。