結果を処理するには
結果セット情報を取得します。
バインドされた列を使用する場合は、バインド先の各列に対して SQLBindCol を呼び出して、プログラム バッファーを列にバインドします。
結果セット内の各行に対して、次の手順を実行します。
SQLFetch を呼び出して次の行を取得します。
バインドされた列が使用されている場合は、バインドされた列バッファーで使用可能になったデータを使用します。
バインドされていない列を使用する場合は、 SQLGetData を 1 回以上呼び出して、最後にバインドされた列の後のバインドされていない列のデータを取得します。
SQLGetDataの呼び出しは、列番号の順序を増やす必要があります。SQLGetDataを複数回呼び出して、テキストまたは画像の列からデータを取得します。
SQLFetch がSQL_NO_DATAを返して結果セットの末尾を通知する場合は、SQLMoreResults を呼び出して、別の結果セットが使用可能かどうかを判断します。
SQL_SUCCESSを返す場合は、別の結果セットを使用できます。
SQL_NO_DATAが返された場合、使用できる結果セットはそれ以上ありません。
SQL_SUCCESS_WITH_INFOまたはSQL_ERRORを返す場合は、 SQLGetDiagRec を呼び出して、PRINT ステートメントまたは RAISERROR ステートメントからの出力が使用可能かどうかを判断します。
バインドされたステートメント パラメーターを出力パラメーターまたはストアド プロシージャの戻り値に使用する場合は、バインドされたパラメーター バッファーで使用可能になったデータを使用します。 また、バインドされたパラメーターを使用する場合、SQLExecute または SQLExecDirect を呼び出すたびに SQL ステートメントが S 回実行されます。S はバインドされたパラメーターの配列内の要素の数です。 つまり、処理する結果の セットは S になり、各結果セットは、SQL ステートメントの 1 回の実行によって通常返されるすべての結果セット、出力パラメーター、およびリターン コードで構成されます。
注
結果セットにコンピューティング行が含まれている場合、各コンピューティング行は個別の結果セットとして使用できるようになります。 これらの計算結果セットは、通常の行内に散在し、通常の行を複数の結果セットに分割します。
必要に応じて、 SQL_UNBINDで SQLFreeStmt を呼び出して、バインドされた列バッファーを解放します。
別の結果セットが使用可能な場合は、手順 1 に進みます。
注
SQLFetch がSQL_NO_DATAを返す前に結果セットの処理を取り消すには、SQLCloseCursor を呼び出します。