共用方式為


處理結果 - 處理結果

適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)

ODBC 應用程式中的處理結果包括先判斷結果集的特性,然後使用 SQLBindColSQLGetData 將數據擷取到程式變數中。

處理結果

  1. 擷取結果集資訊。

  2. 如果使用系結數據行,針對您想要系結的每個數據行,請呼叫 SQLBindCol 將程式緩衝區系結至數據行。

  3. 針對結果集中的每個資料列:

    • 呼叫 SQLFetch 以取得下一個數據列。

    • 如果使用系結數據行,請使用系結數據行緩衝區中現在可用的數據。

    • 如果使用未系結的數據行,請 呼叫 SQLGetData 一或多次,以取得最後一個系結數據行之後未系結數據行的數據。 對 SQLGetData呼叫應該會依數據行編號的順序增加。

    • 多次呼叫 SQLGetData ,以從文字或影像數據行取得數據。

  4. SQLFetch 傳回SQL_NO_DATA來發出結果集結尾的訊號時,請呼叫 SQLMoreResults 來判斷是否有其他結果集可用。

    • 如果傳回SQL_SUCCESS,則會提供另一個結果集。

    • 如果傳回SQL_NO_DATA,就不會再使用任何結果集。

    • 如果傳回SQL_SUCCESS_WITH_INFO或SQL_ERROR,請呼叫 SQLGetDiagRec 來判斷 PRINT 或 RAISERROR 語句的輸出是否可用。

      如果係結語句參數用於輸出參數或預存程式的傳回值,請使用係結參數緩衝區中現在可用的數據。 此外,使用係結參數時,每次呼叫 SQLExecuteSQLExecDirect 都會執行 SQL 語句 S 次,其中 S 是係結參數數位中的元素數目。 這表示將會 有一組要 處理的結果,其中每個結果集都包含所有結果集、輸出參數,以及通常由單一執行 SQL 語句傳回的傳回碼。

    注意

    當結果集包含計算數據列時,每個計算數據列都會以個別的結果集的形式提供。 這些計算結果集會插在一般數據列內,並將一般數據列分成多個結果集。

  5. 或者,使用 SQL_UNBIND 呼叫 SQLFreeStmt ,以釋放任何系結的數據行緩衝區。

  6. 如果有另一個結果集可用,請移至步驟 1。

注意

若要在 SQLFetch 傳回SQL_NO_DATA之前取消處理結果集,請呼叫 SQLCloseCursor

另請參閱

擷取結果集資訊 (ODBC)