ステートメントを使用する方法 (ODBC)

新規 : 2006 年 4 月 14 日

ステートメントを使用するには

  1. HandleType を SQL_HANDLE_STMT として SQLAllocHandle を呼び出し、ステートメント ハンドルを割り当てます。

  2. また、SQLSetStmtAttr を呼び出してステートメント オプションを設定するか、SQLGetStmtAttr を呼び出してステートメント属性を取得することもできます。

    サーバー カーソルを使用するには、カーソルの属性を既定値以外の値に設定する必要があります。

  3. また、ステートメントを複数回実行する場合は、SQLPrepare を使用して実行するステートメントを準備します。

  4. ステートメントにバインドされたパラメータ マーカーが含まれている場合は、必要に応じて、SQLBindParameter を使用してパラメータ マーカーをプログラム変数にバインドします。ステートメントが準備されている場合は、SQLNumParams および SQLDescribeParam を呼び出して、パラメータの数と特性を検索できます。

  5. SQLExecDirect を使用してステートメントを直接実行します。

    - または -

    ステートメントが準備されている場合は、SQLExecute を使用してそのステートメントを複数回実行します。

    - または -

    カタログ関数を呼び出すと、結果が返されます。

  6. 結果セット列をプログラム変数にバインドするか、SQLGetData を使用して結果セット列からプログラム変数にデータを移動するか、あるいはこれらの 2 つの方法を組み合わせて結果を処理します。

    ステートメントの結果セットを一度に 1 行ずつフェッチします。

    - または -

    ブロック カーソルを使用して一度に複数行の結果セットをフェッチします。

    - または -

    SQLRowCount を呼び出して、INSERT、UPDATE、または DELETE ステートメントの影響を受ける行数を確認します。

    SQL ステートメントに複数の結果セットが含まれている可能性がある場合は、各結果セットの最後に SQLMoreResults を呼び出して、処理する追加の結果セットがあるかどうかを確認します。

  7. 結果が処理されたら、ステートメント ハンドルで新しいステートメントを実行できるように、次のアクションが必要な場合があります。

    • SQL_NO_DATA が返されるまで SQLMoreResults を呼び出さなかった場合は、SQLCloseCursor を呼び出してカーソルを閉じます。
    • パラメータ マーカーをプログラム変数にバインドした場合は、Option を SQL_RESET_PARAMS に設定して SQLFreeStmt を呼び出し、バインドされたパラメータを解放します。
    • 結果セット列をプログラム変数にバインドした場合は、Option を SQL_UNBIND に設定して SQLFreeStmt を呼び出し、バインドされた列を解放します。
    • ステートメント ハンドルを再利用するには、手順 2. に進みます。
  8. HandleType を SQL_HANDLE_STMT として SQLFreeHandle を呼び出し、ステートメント ハンドルを解放します。

参照

その他の技術情報

クエリを実行する方法 (ODBC)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手