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

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

Note

この情報は、MFC ODBC クラスに該当します。 MFC DAO クラスを使っている場合、DAO ヘルプの "Microsoft Jet Database Engine SQL と ANSI SQL の比較" というトピックを参照してください。

どのようなときに SQL を直接呼び出すか

新しいテーブルの作成、テーブルのドロップ (削除)、既存のテーブルの変更、インデックスの作成、データ ソース (ODBC) スキーマを変更するその他の SQL 関数の実行を行うには、データベース定義言語 (DDL) を使って、SQL ステートメントをデータ ソースに直接発行する必要があります。 ウィザードを使って (デザイン時に) テーブルのレコードセットを作成するときに、レコードセットで表すテーブルの列を選ぶことができます。 プログラムをコンパイルした後で、データ ソースのユーザーがテーブルに列を追加することはできません。 データベース クラスでは DDL は直接サポートされていませんが、それでも実行時に新しい列をレコードセットに動的にバインドするコードを記述できます。 このバインドを行う方法については、「レコードセット: データ列を動的に結びつける方法 (ODBC)」をご覧ください。

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

SQL 関数の直接呼び出しの実行

CDatabase クラスのオブジェクトを使って、SQL の呼び出しを直接実行できます。 SQL ステートメントの文字列を (通常は CString で) 設定し、CDatabase オブジェクトの CDatabase::ExecuteSQL メンバー関数に渡します。 ODBC 関数呼び出しを使って、通常はレコードを返す SQL ステートメントを送信した場合、レコードは無視されます。

関連項目

SQL