處理結果 - 處理結果
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)
ODBC 應用程式中的處理結果包括先判斷結果集的特性,然後使用 SQLBindCol 或 SQLGetData 將數據擷取到程式變數中。
處理結果
擷取結果集資訊。
如果使用系結數據行,針對您想要系結的每個數據行,請呼叫 SQLBindCol 將程式緩衝區系結至數據行。
針對結果集中的每個資料列:
呼叫 SQLFetch 以取得下一個數據列。
如果使用系結數據行,請使用系結數據行緩衝區中現在可用的數據。
如果使用未系結的數據行,請 呼叫 SQLGetData 一或多次,以取得最後一個系結數據行之後未系結數據行的數據。 對 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 是係結參數數位中的元素數目。 這表示將會 有一組要 處理的結果,其中每個結果集都包含所有結果集、輸出參數,以及通常由單一執行 SQL 語句傳回的傳回碼。
注意
當結果集包含計算數據列時,每個計算數據列都會以個別的結果集的形式提供。 這些計算結果集會插在一般數據列內,並將一般數據列分成多個結果集。
或者,使用 SQL_UNBIND 呼叫 SQLFreeStmt ,以釋放任何系結的數據行緩衝區。
如果有另一個結果集可用,請移至步驟 1。
注意
若要在 SQLFetch 傳回SQL_NO_DATA之前取消處理結果集,請呼叫 SQLCloseCursor。