是否有方法让Server存储过程向调用方报告进度?
我有一个由多个步骤组成的复杂任务,并且我有一个存储过程来完成它。我从MS Access前端调用这个存储过程。存储过程大约需要3-4分钟才能完成,在此期间,访问似乎是“挂起”的,等待存储过程返回结果或超时。
我知道我可以把我的存储过程分解成3-4个小块,然后一个接一个地调用它们,在这些步骤之间提供一些反馈。然而,这感觉像是一种解决办法,而不是一种解决方案。
我也不喜欢有四个存储过程而不是一个存储过程,因为我有很多这样的任务,这个路径会将我的30个存储过程(已经很多)转换为50+。
那么,存储过程是否有任何方法可以偶尔以状态或其他方式向调用访问(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发布于 2017-05-29 08:59:07
似乎没有好的解决办法。
尝试执行一个SP来完成您的工作(使用dbRunAsync)和另一个SP来接收结果状态。第一个SP应该在某个地方存储执行状态,第二个SP会读取它。
https://stackoverflow.com/questions/44237779
复制相似问题