CDBException::m_nRetCode
ODBC アプリケーション プログラミング インターフェイスの (API) の関数によって返される型 RETCODE の ODBC エラー コードが含まれています。
解説
この型は、ODBC によって定義される SQL 前に付いたコードとデータベース クラスで定義されている AFX_SQL-prefixed コードが含まれています。CDBExceptionの場合、このメンバーは次の値の 1 つが含まれます:
AFX_SQL_ERROR_API_CONFORMANCE は、必要なな ODBC API 準拠レベル 1 (SQL_OAC_LEVEL1) に CDatabase::OpenEx または CDatabase::Open 呼び出し用のドライバー従っていません。
失敗したデータ ソースへの接続のAFX_SQL_ERROR_CONNECT_FAIL。レコードセットのコンストラクターに nullCDatabase のポインターを渡し、GetDefaultConnect に基づいて接続を作成する以降の試行が失敗しました。
ストレージが用意されてAFX_SQL_ERROR_DATA_TRUNCATED とはより多くのデータを要求しました。CString または CByteArray のデータ型の指定されたデータ ストレージを向上させる方法については、「MFC マクロとグローバルの下に RFX_Text と RFX_Binary については nMaxLength の引数を」。
ダイナセットを必要とする CRecordset::Open へのAFX_SQL_ERROR_DYNASET_NOT_SUPPORTED A の呼び出しが失敗しました。ダイナセットは、ドライバーによってサポートされていません。
select のプロシージャ呼び出しまたはステートメントとして指定した数をAFX_SQL_ERROR_EMPTY_COLUMN_LIST、(テーブルを開くとしたまたは) を識別できないが、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 か [削除] を呼び出し、複数のレコードを変更。
以前に削除されたレコードを編集または削除しようとしたAFX_SQL_ERROR_NO_CURRENT_RECORD。削除した後で新しい現在のレコードにスクロールする必要があります。
AFX_SQL_ERROR_NO_POSITIONED_UPDATES は、ダイナセットの要求を ODBC ドライバーがこの機能をサポートしないため実現できませんでした。
AFX_SQL_ERROR_NO_ROWS_AFFECTEDCRecordset::Update か **[削除]**を呼び出していますが、操作が開始するには、レコードが見つかりませんでした。
AFX_SQL_ERROR_ODBC_LOAD_FAILED は ODBC.DLL の読み込みに失敗しました; Windows が見つからないか、この DLL を読み込むことができませんでした。このエラーは致命的です。
AFX_SQL_ERROR_ODBC_V2_REQUIRED は、ダイナセットの要求でレベル 2 に準拠する ODBC ドライバーが必要なため、実行できませんでした。
AFX_SQL_ERROR_RECORDSET_FORWARD_ONLY はスクロールすると、データ ソースが後方スクロールをサポートしていないため、成功しませんでした。
スナップショットを必要とする CRecordset::Open へのAFX_SQL_ERROR_SNAPSHOT_NOT_SUPPORTED A の呼び出しが失敗しました。スナップショットは、ドライバーによってサポートされていません。(これは ODBC カーソル ライブラリ (— ODBCCURS.DLL が存在しない場合にのみ発生しない必要があります)。
AFX_SQL_ERROR_SQL_CONFORMANCE は、「」の最小レベルに必要な ODBC の SQL の一致に CDatabase::OpenEx または CDatabase::Open 呼び出し用のドライバー (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 に用意されている、AFXDB.H で定義または\含まれています。
要件
Header: afxdb.h