首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ODBC调用失败,存储过程-通过查询

ODBC调用失败,存储过程-通过查询
EN

Stack Overflow用户
提问于 2015-04-21 13:50:55
回答 2查看 3.6K关注 0票数 3

我已经创建了一个遍历查询,并试图从它调用一个存储过程。

我能够成功地在sql server数据库上执行查询,但是当涉及到存储过程时,我得到了一个错误,如下所示:

"ODBC call Failed"

问题仅限于存储过程。查询执行得很好。

这里是我的代码:

代码语言:javascript
运行
复制
Dim qdf As DAO.QueryDef, rst As ADODB.Recordset
Dim DatabaseName As String
Dim Server As String
ServerName = "XXXX"
DatabaseName = "XXX"
Set qdf = CurrentDb.CreateQueryDef("")
 strConnectionString = "ODBC;DRIVER={sql server};" & _
        "DATABASE=" & DatabaseName & ";" & _
        "SERVER=" & ServerName & ";" & _
        "Trusted_Connection=YES;"
qdf.Connect = strConnectionString
qdf.SQL = " EXEC [dbo].[SAMPLE_TEST]"
qdf.ReturnsRecords = True
Set rst = qdf.OpenRecordset
Debug.Print rst!RecordCount
rst.Close
Set rst = Nothing

,如果我错过了什么,请告诉我?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-21 15:49:49

若要获取有关“ODBC--调用失败”原因的更多信息,请执行以下操作。错误,我们可以循环遍历DBEngine.Errors集合,并查看是否还有其他可能更具描述性的消息。例如,使用代码

代码语言:javascript
运行
复制
    qdf.Connect = strConnectionString
    qdf.SQL = " EXEC [dbo].[SAMPLE_TEST]"
    qdf.ReturnsRecords = True
    On Error GoTo oops
    Set rst = qdf.OpenRecordset
    Debug.Print rst!RecordCount
    rst.Close
    Set rst = Nothing
    Exit Sub
oops:
    Dim dbeError As Error
    For Each dbeError In DBEngine.Errors
        Debug.Print "(" & dbeError.Number & "): " & dbeError.Description
    Next
End Sub

我们可以在VBA立即窗口中看到以下内容:

代码语言:javascript
运行
复制
(229): [Microsoft][ODBC SQL Server Driver][SQL Server]The EXECUTE permission was denied on the object 'SAMPLE_TEST', database 'myDb', schema 'dbo'.
(3146): ODBC--call failed.

当然

对对象'SAMPLE_TEST‘、数据库'myDb’、架构'dbo‘的EXECUTE权限被拒绝。

比仅仅

ODBC-呼叫失败。

票数 7
EN

Stack Overflow用户

发布于 2015-04-21 14:48:29

又查了一遍你的代码。你不是在运行qry

你不需要做qry.execute吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29774178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档