次の方法で共有


結果の処理 - 処理結果

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

ODBC アプリケーションで結果を処理するには、まず結果セットの特性を判断してから、 SQLBindCol または SQLGetData を使用してプログラム変数にデータを取得します。

結果を処理するには

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

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

  3. 結果セット内の各行に対して次の操作を行います。

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

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

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

    • SQLGetData を複数回呼び出して、text または image 列からデータを取得します。

  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 回の実行で返されるリターン コードがすべて含まれます。

    Note

    結果セットに計算行が含まれている場合、各計算行は個々の結果セットとして使用できるようになります。 これらの計算結果セットは標準行内に点在し、標準行は複数の結果セットに分割されます。

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

  6. 別の結果セットが使用できる場合は、手順 1 に戻ります。

Note

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

参照

結果セットの情報の取得 (ODBC)