从 ms 访问调用标量 UDF 函数
Posted
技术标签:
【中文标题】从 ms 访问调用标量 UDF 函数【英文标题】:Calling scalar UDF function from ms access 【发布时间】:2016-06-06 11:58:16 【问题描述】:我试图在 ms 访问中从我的数据库中调用一个标量函数。 这个函数应该返回一行我的加盐和散列参数。
我最初的尝试看起来像这样并返回以下错误:“undefined function 'dbo.SaltAndHashPassword' in expression”
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("SELECT dbo.SaltAndHashPassword('" & Me.txtWW & "','" & Me.salt & "') as salted", dbOpenSnapshot, dbReadOnly)
我尝试了this question 的解决方案,但出现“需要对象”错误
我也尝试了this question 的解决方案,但我无法让它工作(可能是由于参数错误)
谁能帮我解决这个问题?
提前致谢。
【问题讨论】:
【参考方案1】:在这种情况下,您不能使用CurrentDb
。您必须将Connection
对象设置到存储dbo.SaltAndHashPassword
函数的服务器/数据库(您提到的示例使用连接,即使未显示设置它的代码),因为它完全未知访问。
或者,您可以在 Access 中创建一个直通查询并使用 DAO。我发现它更容易,并且避免了创建另一个外部引用。
类似:
Set db = CurrentDb()
'Create a temporary passthrough query '
Set ptq = db.CreateQueryDef("")
'set ODBC connection '
ptq.Connect = "your connect string"
ptq.SQL = "SELECT * from your SQL"
ptq.ReturnsRecords = True
Set rs = ptq.OpenRecordset(dbOpenSnapshot)
【讨论】:
谢谢,那么我该如何设置连接对象或使用 DAO 创建直通查询?以上是关于从 ms 访问调用标量 UDF 函数的主要内容,如果未能解决你的问题,请参考以下文章
使用 EXECUTE 从 SQL Server 调用用户定义函数时的标量结果不同