Sql server 当从access.adp report调用时,我希望回显/访问SQL 2005中存储过程中的筛选器或where子句

Sql server 当从access.adp report调用时,我希望回显/访问SQL 2005中存储过程中的筛选器或where子句,sql-server,ms-access,stored-procedures,Sql Server,Ms Access,Stored Procedures,我正在调用一个报告,该报告链接到Access 2010.adp文件中的存储过程 例如: DoCmd.OpenReport "r_my_report", acPreview, , "xxx=" & Chr(34) & xxx & Chr(34) 是否可以回显where子句或filter参数,并在存储过程中对其执行一些逻辑操作?这些参数是以您可以使用的方式进入存储过程的,还是access只是在后台直接将它们提供给SQL引擎?我甚至可以只回显或记录执行的实际查询吗 在这方

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

例如:

  DoCmd.OpenReport "r_my_report", acPreview, , "xxx=" & Chr(34) & xxx & Chr(34)
是否可以回显where子句或filter参数,并在存储过程中对其执行一些逻辑操作?这些参数是以您可以使用的方式进入存储过程的,还是access只是在后台直接将它们提供给SQL引擎?我甚至可以只回显或记录执行的实际查询吗


在这方面,我正在逐步学习,因此提前感谢您的帮助。

Access。adp提供了一个与SQL server相当直接的接口,您在adp中看到的存储过程是SQL server数据库中的实际存储过程

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

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


要了解服务器上发生的情况,请使用SQL server Profiler,这将为您提供针对服务器运行的所有查询的列表以及一些统计信息。您可能会发现access比您预期的更聪明。

我知道where子句已传递给服务器,这样服务器就不会向客户端返回不需要的数据了?SQL不能做的一件事是“从MyStoredProcess中选择myfields,其中mycriteria=1”需要使用其参数执行存储过程,即“EXEC”MyStoredProcess myparam1,myparam2'。视图是不同的,因为您可以“从myview中选择myfields,其中mycriteria=1”,并且它可以基于该条件进行优化。对视图的参数化查询与优化一起完成相同的任务。因此,如何从访问存储过程中获取视图所需的参数?我该如何回显它——这样我才能看到它是什么?当它到达时,我如何修改它?我仍然想处理存储过程中的参数。我的存储过程是我想把我的程序逻辑放在哪里。到目前为止,我唯一幸运的事情是使用一个单独的表,其中包含我的参数,并在存储过程开始时检索该表,但这似乎有点笨拙,而且不利于多用户。谢谢你迄今为止的帮助!