ステートメントの使用 (ODBC)
ステートメントを使用するには
HandleType を SQL_HANDLE_STMT として SQLAllocHandle を呼び出し、ステートメント ハンドルを割り当てます。
また、SQLSetStmtAttr を呼び出してステートメント オプションを設定するか、SQLGetStmtAttr を呼び出してステートメント属性を取得することもできます。
サーバー カーソルを使用するには、カーソルの属性を既定値以外の値に設定する必要があります。
また、ステートメントを複数回実行する場合は、SQLPrepare 関数を使用して実行するステートメントを準備します。
ステートメントにバインドされたパラメーター マーカーが含まれている場合は、必要に応じて、SQLBindParameter を使用してパラメーター マーカーをプログラム変数にバインドします。 ステートメントが準備されている場合は、SQLNumParams および SQLDescribeParam を呼び出して、パラメーターの数と特性を検索できます。
SQLExecDirect を使用してステートメントを直接実行します。
- または -
ステートメントが準備されている場合は、SQLExecute を使用してそのステートメントを複数回実行します。
- または -
カタログ関数を呼び出すと、結果が返されます。
結果セット列をプログラム変数にバインドするか、SQLGetData を使用して結果セット列からプログラム変数にデータを移動するか、あるいはこれらの 2 つの方法を組み合わせて結果を処理します。
ステートメントの結果セットを一度に 1 行ずつフェッチします。
- または -
ブロック カーソルを使用して一度に複数行の結果セットをフェッチします。
- または -
SQLRowCount を呼び出して、INSERT、UPDATE、または DELETE ステートメントの影響を受ける行数を確認します。
SQL ステートメントに複数の結果セットが含まれている可能性がある場合は、各結果セットの最後に SQLMoreResults を呼び出して、処理する追加の結果セットがあるかどうかを確認します。
結果が処理されたら、ステートメント ハンドルで新しいステートメントを実行できるように、次のアクションが必要な場合があります。
SQL_NO_DATA が返されるまで SQLMoreResults を呼び出さなかった場合は、SQLCloseCursor を呼び出してカーソルを閉じます。
パラメーター マーカーをプログラム変数にバインドした場合は、Option を SQL_RESET_PARAMS に設定して SQLFreeStmt を呼び出し、バインドされたパラメーターを解放します。
結果セット列をプログラム変数にバインドした場合は、Option を SQL_UNBIND に設定して SQLFreeStmt を呼び出し、バインドされた列を解放します。
ステートメント ハンドルを再利用するには、手順 2. に進みます。
HandleType を SQL_HANDLE_STMT として SQLFreeHandle を呼び出し、ステートメント ハンドルを解放します。