次の方法で共有


SQL: SQL の直接呼び出し (ODBC)

このトピックでは、次の内容について説明します。

  • SQL を直接呼び出す場合

  • SQL 関数を直接呼び出す方法

[!メモ]

この内容は、MFC ODBC クラスに該当します。MFC DAO クラスを使用している場合は、DAO ヘルプの「Comparison of Microsoft Jet Database Engine SQL and ANSI SQL」を参照してください。

SQL を直接呼び出す場合

テーブルの新規作成、削除、変更、インデックスの作成など、データ ソース (ODBC)のスキーマを変更するような SQL 関数を利用するときは、DDL (Database Definition Language) を使って、SQL ステートメントを直接データ ソースに発行します。ウィザードを使ってレコードセットを作成すると、レコードセットに含める列をアプリケーションのデザイン時に指定できます。ただし、この方法では、アプリケーションの作成後にテーブルに追加された列にアクセスできません。データベース クラスでは DDL が直接サポートされていませんが、新しく追加された列をレコードセットに動的に (プログラム実行時に) 結び付ける方法があります。このバインディングを行う方法については、「レコードセット: データ列を動的に結びつける方法 (ODBC)」を参照してください。

DBMS 自体を使ってスキーマを更新することも、DDL 関数を実行するツールを使用することもできます。ODBC 関数を呼び出して SQL ステートメントを送ることもできます。この場合は、レコードを返さない定義済みクエリ (ストアド プロシージャ) などを呼び出すことができます。

SQL 関数を直接呼び出す方法

CDatabase クラス オブジェクトを使って SQL を直接呼び出すことができます。SQL ステートメント文字列 (通常は CString) を作成し、この文字列を CDatabase オブジェクトのメンバー関数 CDatabase::ExecuteSQL に渡します。ODBC 関数を呼び出して SQL ステートメントを送ると、通常レコードを返すステートメントであってもレコードは無視されます。

参照

概念

SQL