我正在调用一个报告,该报告链接到Access 2010 .adp文件中的存储过程
例如:
DoCmd.OpenReport "r_my_report", acPreview, , "xxx=" & Chr(34) & xxx & Chr(34)
是否可以回显where子句或filter参数并在存储过程中对其执行某些逻辑?这些参数是以可以使用它们的方式进入存储过程的,还是访问只是直接将它们提供给后台的SQL引擎?我甚至可以回显或记录执行的实际查询吗?
我正在攀登学习曲线,所以提前感谢你的帮助。
答案 0 :(得分:0)
Access .adp为SQL服务器提供了一个相当直接的接口,您在adp中看到的存储过程是SQL Server数据库中的实际存储过程。
您有一个基于带过滤器的存储过程的报告,可能发生的是使用它的参数执行存储过程,然后将数据集传递回客户端,然后由客户端对其进行过滤。
如果你使用了一个视图而不是一个存储过程,那么查询可能会被转换并传递给sql server,服务器的优化器就会制定一个计划来优化它的执行,包括where子句中的字段。
要了解服务器上发生的情况,请使用SQL Server Profiler,这将为您提供所有查询的列表,作为针对服务器的运行以及一些统计信息。您可能会发现访问权限比您预期的要清晰。