2
SQL Server存儲過程是否可以向調用者報告進度?
我有一個複雜的任務組成的多個步驟,我有一個存儲過程來做到這一點。我從MS Access前端調用此存儲過程。存儲過程大約需要3-4分鐘才能完成,在此期間,Access似乎「掛起」,等待存儲過程返回結果或超時。SQL Server存儲過程向其調用者報告進度,Access(VBA DAO)傳遞查詢
我知道我可以將我的存儲過程拆分成3-4個小塊,然後一個接一個地調用它們,在這些步驟之間提供一些反饋。但是,這看起來像是一種解決方法,而不是解決方案。我也不希望有四個存儲過程,而不是一個,因爲我有很多這樣的任務,這條路徑將我的30個存儲過程(已經很多)變成50+。
那麼,有沒有什麼辦法讓存儲過程偶爾向調用Access(DAO)報告一個狀態或任何東西?
這是我如何調用存儲過程:
Dim cdb As DAO.Database, qdf As DAO.QueryDef
Set cdb = CurrentDb
Set qdf = cdb.CreateQueryDef("")
' get .Connect property from existing ODBC linked table
qdf.Connect = cdb.TableDefs("Quote").Connect
qdf.sql = "EXEC INV.ProcessMatchedQueries"
qdf.ReturnsRecords = False
qdf.ODBCTimeout = 300
qdf.Execute dbFailOnError
Set qdf = Nothing
Set cdb = Nothing
這實際上是一個好主意,我會嘗試。我會暫時將問題留待一段時間,希望得到另一個更漂亮的解決方案。謝謝! – vacip
在ADO.NET中,您可以創建一個'SqlDataReader'對象來接收多個記錄集,並在一個SP中添加多個'SELECT'語句以返回結果狀態。我認爲它在DAO中不受支持。 –