2016-08-26 33 views
0

我有一個存儲過程,可能會返回2或3個結果集,具體取決於正在處理的數據。我將如何使用cfprocresult根據各自的回報來捕獲第二或第三個結果集?如何使用cfprocresult從存儲過程捕獲動態結果集

+0

你是說從同一個存儲過程返回的結果集的數量會改變嗎?有時它會是2,其他時間會是3.你會提前知道(根據調用)存儲過程是否會返回2或3個結果集? –

+0

存儲過程是相同的,但我不知道當我調用存儲過程時它是否會返回2或3個結果集。取決於存儲過程內的數據計算,結果集形成。 –

+0

那麼,如果你在調用時調用存儲過程的最大可能數量爲'cfprocresults'(在本例中爲3),會發生什麼?它會拋出一個錯誤還是缺少的結果集變量只是空的? –

回答

3

從我們的評論

在這種情況下,存儲的過程返回一個不同數量取決於數據結果集的有討論正在處理中。一次調用可能導致返回2個結果集,但另一次調用可能導致3.如果使用cfstoredproc標記,並且最大數量爲cfprocresult標記,並且一個(或多個)結果集未返回,則會拋出錯誤。

我不認爲cfprocresult標記允許從cfstoredproc調用中返回可變數目的結果集。假設您知道在撥打電話之前要返回的結果集數量。

在這種情況下,最好的方法(即最簡單)可能是修改存儲過程,以便始終返回最大數量的結果集,即使它們爲空/空也是如此。然後,您可以檢查並處理代碼中的空響應。

相關問題