当从Access .adp报告中调用时,我想在SQL 2005中回显/访问我的存储过程中的filter或where子句

时间:2011-12-05 17:21:30

标签: sql-server ms-access stored-procedures

我正在调用一个报告,该报告链接到Access 2010 .adp文件中的存储过程

例如:

  DoCmd.OpenReport "r_my_report", acPreview, , "xxx=" & Chr(34) & xxx & Chr(34)

是否可以回显where子句或filter参数并在存储过程中对其执行某些逻辑?这些参数是以可以使用它们的方式进入存储过程的,还是访问只是直接将它们提供给后台的SQL引擎?我甚至可以回显或记录执行的实际查询吗?

我正在攀登学习曲线,所以提前感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

Access .adp为SQL服务器提供了一个相当直接的接口,您在adp中看到的存储过程是SQL Server数据库中的实际存储过程。

您有一个基于带过滤器的存储过程的报告,可能发生的是使用它的参数执行存储过程,然后将数据集传递回客户端,然后由客户端对其进行过滤。

如果你使用了一个视图而不是一个存储过程,那么查询可能会被转换并传递给sql server,服务器的优化器就会制定一个计划来优化它的执行,包括where子句中的字段。

要了解服务器上发生的情况,请使用SQL Server Profiler,这将为您提供所有查询的列表,作为针对服务器的运行以及一些统计信息。您可能会发现访问权限比您预期的要清晰。