次の方法で共有


CDaoDatabase::Execute

アクション クエリの実行や、データベースの SQL ステートメントを実行するには、このメンバー関数を呼び出します。

void Execute( 
   LPCTSTR lpszSQL, 
   int nOptions = dbFailOnError  
);

パラメーター

  • lpszSQL
    実行する有効な SQL コマンドを含む null で終わる文字列へのポインター。

  • nOptions
    クエリの整合性に対してオプションを指定する整数。ビットごとの OR 演算子を使用できます。|) 次の定数の組み合わせ (意味が用意されています。たとえば、dbConsistentdbInconsistent を結合して) 結合するには:

    • dbDenyWrite は、他のユーザーに書き込みのアクセス許可を拒否します。

    • dbInconsistent (既定) の一貫性が更新されます。

    • dbConsistent の一貫した更新。

    • dbSQLPassThrough の SQL のパススルー。SQL ステートメントを処理する ODBC データ ソースに渡します。

    • dbFailOnError エラーが発生した場合は、更新をロールバックします。

    • dbSeeChanges は、他のユーザーが編集しているデータを変更すると、実行時エラーが生成されます。

[!メモ]

dbInconsistentdbConsistent の両方が含まれているか、いずれも含まれていない場合、結果は既定値です。これらの定数の詳細については、" "の「DAO ヘルプのメソッドを実装する」"を参照してください。

解説

[実行] は結果を返さない SQL のパススルー クエリまたはアクション クエリにのみ機能します。これは戻り値のレコード選択クエリにしません。

アクション クエリの定義とついては、「アクション クエリが」と「DAO ヘルプのメソッドを実装する」"を参照してください。

ヒントヒント

構文上、適切な SQL ステートメントと適切なアクセス許可は、[実行] のメンバー関数はない一つの行が変更または削除することはできても失敗しません。したがって、更新または削除クエリを実行するために [実行] のメンバー関数を使用する場合は、dbFailOnError のオプションを常に使用します。影響を受けたレコードがロックされ、更新、または削除できない場合、このオプションは、MFC は型の例外をスローします CDaoException、成功したすべての変更をロールバックされます。レコードの数が影響を受けているかを確認するに GetRecordsAffected を常に呼び出すことができることに注意してください。

[実行] の最新の呼び出しによって影響を受けたレコードの数を確認するためにデータベース オブジェクトの GetRecordsAffected のメンバー関数を呼び出します。たとえば、GetRecordsAffected は、アクション クエリを実行すると削除、更新または挿入レコード数に関する情報を返します。返された計算は、カスケードが更新または削除が有効な場合、関連テーブルの変更を反映しません。

[実行]、レコードセットを返しません。CDaoException型の例外をスローするレコードの原因の MFC を選択するクエリの [実行] を使用します。( CDatabase::ExecuteSQLのような ExecuteSQL のメンバー関数がありません)。

必要条件

Header: afxdao.h

参照

関連項目

CDaoDatabase クラス

階層図