次の方法で共有


CDBException::m_nRetCode

ODBC アプリケーション プログラミング インターフェイス (API) 関数が返す RETCODE 型の ODBC エラー コードを保持します。

解説

このエラー コードには、SQL から始まる ODBC が定義しているコードと AFX_SQL から始まるデータベース クラスが定義しているコードがあります。 CDBException では、このメンバーは次に示すいずれかの値になります。

  • AFX_SQL_ERROR_API_CONFORMANCE   CDatabase::OpenEx 呼び出し**、**または CDatabase::Open 呼び出しのドライバーが ODBC API 準拠レベル 1 (SQL_OAC_LEVEL1) に対応していません。

  • AFX_SQL_ERROR_CONNECT_FAIL   データ ソースへの接続に失敗しました。 レコードセットのコンストラクターに NULL CDatabase ポインターを渡した後、GetDefaultConnect によって接続しようとしましたが失敗しました。

  • AFX_SQL_ERROR_DATA_TRUNCATED   用意した領域よりも大きいデータを要求しました。 CString または CByteArray データ型で用意したデータ領域の拡張方法については、「MFC マクロとグローバル」の「RFX_Text」と「RFX_Binary」の引数 nMaxLength を参照してください。

  • AFX_SQL_ERROR_DYNASET_NOT_SUPPORTED   ダイナセットを要求する CRecordset::Open 呼び出しに失敗しました。 ドライバーがダイナセットをサポートしていません。

  • AFX_SQL_ERROR_EMPTY_COLUMN_LIST   テーブルを開こうとしました (あるいは、プロシージャ呼び出しや SELECT ステートメントとして認識できないことを試みようとしました) が、オーバーライドした DoFieldExchange で呼び出したレコード フィールド エクスチェンジ (RFX) 関数で認識できる列がありません。

  • AFX_SQL_ERROR_FIELD_SCHEMA_MISMATCH   オーバーライドした DoFieldExchange での RFX 関数の型が、レコードセットの列のデータ型と互換性がありません。

  • AFX_SQL_ERROR_ILLEGAL_MODE   CRecordset::AddNew または CRecordset::Edit をあらかじめ呼び出さずに CRecordset::Update を呼び出しました。

  • AFX_SQL_ERROR_LOCK_MODE_NOT_SUPPORTED   更新処理でレコードをロックしようとしましたが、ODBC ドライバーがレコードのロックをサポートしていないため、ロックできませんでした。

  • AFX_SQL_ERROR_MULTIPLE_ROWS_AFFECTED   テーブルに対して重複したキーを使って CRecordset::Update または Delete を呼び出し、複数のレコードを変更しました。

  • AFX_SQL_ERROR_NO_CURRENT_RECORD   以前に削除したレコードを編集、削除しようとしました。 削除後は、新しい現在のレコードにスクロールする必要があります。

  • AFX_SQL_ERROR_NO_POSITIONED_UPDATES   ダイナセットに対して要求しましたが、ODBC ドライバーが位置指定付き更新をサポートしていないため失敗しました。

  • AFX_SQL_ERROR_NO_ROWS_AFFECTED   CRecordset::Update または Delete を呼び出しましたが、操作開始時にレコードが見つかりませんでした。

  • AFX_SQL_ERROR_ODBC_LOAD_FAILED   ODBC.DLL の読み込みに失敗しました。Windows が DLL を見つけられないか、または読み込みができませんでした。 これは致命的なエラーです。

  • AFX_SQL_ERROR_ODBC_V2_REQUIRED   ダイナセットに対して要求しましたが、レベル 2 の ODBC ドライバーが必要だったため失敗しました。

  • AFX_SQL_ERROR_RECORDSET_FORWARD_ONLY   データ ソースが後方へのスクロールをサポートしていないので、スクロールできませんでした。

  • AFX_SQL_ERROR_SNAPSHOT_NOT_SUPPORTED   スナップショットを要求する CRecordset::Open 呼び出しに失敗しました。 ドライバーがスナップショットをサポートしていません。 これは、ODBC カーソル ライブラリ (ODBCCURS.DLL) が存在しない場合のみ発生します。

  • AFX_SQL_ERROR_SQL_CONFORMANCE   CDatabase::OpenEx 呼び出し**、**または CDatabase::Open 呼び出しのドライバーが "Minimum" 準拠レベルの ODBC SQL (SQL_OSC_MINIMUM) に対応していません。

  • AFX_SQL_ERROR_SQL_NO_TOTAL   ODBC ドライバーが CLongBinary データ値の総容量を特定できません。 グローバル メモリ ブロックを事前に割り当てることができないため、この操作は失敗します。

  • AFX_SQL_ERROR_RECORDSET_READONLY   読み取り専用のレコードセットを更新しようとしたか、データ ソースが読み取り専用です。 レコードセットやレコードセットに関連付けられた CDatabase オブジェクトは更新できません。

  • SQL_ERROR   関数は失敗しました。 ODBC 関数 SQLError が返すエラー メッセージは m_strError データ メンバーに格納されます。

  • SQL_INVALID_HANDLE   無効な環境ハンドル、接続ハンドルまたはステートメント ハンドルを使ったために関数が失敗しました。 これはプログラミング エラーです。 ODBC 関数 SQLError からこれ以上の情報は得られません。

SQL から始まるコードは ODBC で定義されています。 AFX から始まるコードは MFC\INCLUDE の AFXDB.H に定義してあります。

要件

**ヘッダー:**afxdb.h

参照

参照

CDBException クラス

階層図

CDatabase クラス

CLongBinary クラス

CRecordset クラス

その他の技術情報

CDBException のメンバー