次の方法で共有


ステートメントの使用 (ODBC)

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

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

  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)