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