SQL : SQL の直接呼び出し (ODBC)
更新 : 2007 年 11 月
このトピックでは、次の内容について説明します。
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 ステートメントを送ると、通常レコードを返すステートメントであってもレコードは無視されます。