次の方法で共有


結果の処理 (ODBC)

結果を処理するには

  1. 結果セット情報を取得します。

  2. バインドされた列を使用する場合は、バインド先の各列に対して SQLBindCol を呼び出して、プログラム バッファーを列にバインドします。

  3. 結果セット内の各行に対して、次の手順を実行します。

    • SQLFetch を呼び出して次の行を取得します。

    • バインドされた列が使用されている場合は、バインドされた列バッファーで使用可能になったデータを使用します。

    • バインドされていない列を使用する場合は、 SQLGetData を 1 回以上呼び出して、最後にバインドされた列の後のバインドされていない列のデータを取得します。 SQLGetDataの呼び出しは、列番号の順序を増やす必要があります。

    • SQLGetDataを複数回呼び出して、テキストまたは画像の列からデータを取得します。

  4. 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 回の実行によって通常返されるすべての結果セット、出力パラメーター、およびリターン コードで構成されます。

    結果セットにコンピューティング行が含まれている場合、各コンピューティング行は個別の結果セットとして使用できるようになります。 これらの計算結果セットは、通常の行内に散在し、通常の行を複数の結果セットに分割します。

  5. 必要に応じて、 SQL_UNBINDで SQLFreeStmt を呼び出して、バインドされた列バッファーを解放します。

  6. 別の結果セットが使用可能な場合は、手順 1 に進みます。

SQLFetch がSQL_NO_DATAを返す前に結果セットの処理を取り消すには、SQLCloseCursor を呼び出します。

こちらもご覧ください

結果の処理方法に関するトピック (ODBC)