在直通查询中使用函数调用?
Use function call in passthrough query?
我在 Access 2010 应用程序中有一个直通查询,我用它来调用 SQL 服务器后端上的存储过程。存储过程采用一个我需要动态化的参数。问题是这样的:
Execute spMyProc 'userName'
按预期工作。
Execute spMyProc getUserName()
生成 "syntax error at ')'" 消息。
是否可以在传递查询中使用函数作为参数?
另外,我应该注意到,我正在将一个复杂的 Access 应用程序迁移到 SQL 服务器,但我真的不精通我正在做的事情。对于我做错的事情的任何建议将不胜感激。这个特殊问题是由于尝试将表单的记录源从记录源 属性 中的简单 select 语句更改为服务器上可以 运行 的内容而产生的。
您可以使用此代码:
With CurrentDb.QueryDefs("MyPass")
.SQL = "exec spMyProc '" & getUserName() & "'"
.Execute
End With
因为 getUserName() 是本地 VBA 函数,所以您需要预先评估发送到 SQL 服务器的实际字符串。如上所示,使用保存的传递是 "handy",因为您不必处理连接字符串等
我在 Access 2010 应用程序中有一个直通查询,我用它来调用 SQL 服务器后端上的存储过程。存储过程采用一个我需要动态化的参数。问题是这样的:
Execute spMyProc 'userName'
按预期工作。
Execute spMyProc getUserName()
生成 "syntax error at ')'" 消息。
是否可以在传递查询中使用函数作为参数?
另外,我应该注意到,我正在将一个复杂的 Access 应用程序迁移到 SQL 服务器,但我真的不精通我正在做的事情。对于我做错的事情的任何建议将不胜感激。这个特殊问题是由于尝试将表单的记录源从记录源 属性 中的简单 select 语句更改为服务器上可以 运行 的内容而产生的。
您可以使用此代码:
With CurrentDb.QueryDefs("MyPass")
.SQL = "exec spMyProc '" & getUserName() & "'"
.Execute
End With
因为 getUserName() 是本地 VBA 函数,所以您需要预先评估发送到 SQL 服务器的实际字符串。如上所示,使用保存的传递是 "handy",因为您不必处理连接字符串等