次の方法で共有


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_TextRFX_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_MISMATCHDoFieldExchange のオーバーライドで RFX 関数の列データ型と互換性のあるデータ型レコードセットではありません。

  • AFX_SQL_ERROR_ILLEGAL_MODE 前に CRecordset::AddNewCRecordset::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

参照

関連項目

CDBException クラス

階層図

CDatabase クラス

CLongBinary クラス

CRecordset クラス