1

我有一个从 Access 2007 数据库中的 VB 代码运行的存储过程。通常代码运行良好;但是有时我会收到以下错误:

错误 # -2147217900 由 Microsoft OLE DB Provider for ODBC Drivers [Microsoft][SQL Server Native Client 10.0][SQL Server]直接执行 SQL 生成;没有光标。

我已经对此进行了相当多的研究,但我没有想出太多。我看到有两个来源:一个原因是权限不足,另一个与存储过程本身的问题有关。我知道权限不是问题。此外,无论我运行多少次,存储过程在管理工作室中都运行得非常好。

请帮忙!!!

4

2 回答 2

6

与同事合作发现了问题。从根本上说,核心问题是真正的问题被通用错误消息混淆了。在这种情况下,“无光标”错误。诀窍是弄清楚实际的错误消息是什么。考虑到这一点,一位同事将 ODBC 驱动程序从我的帖子中提到的“SQL Server Native Client 10”更改为较旧的 MS SQL Server 驱动程序;虽然较新的版本 10 混淆了错误,但较旧的驱动程序揭示了存储过程中的实际错误(由于我自己的测试,我认为最初不是这种情况)。所以最重要的是,有两点可以从中得到:首先,如果您遇到此错误,请尝试上述技巧以尝试揭示实际错误和第二个注意事项,

于 2012-08-15T22:18:29.293 回答
1

当您收到此错误时,您应该计算出将哪些参数传递给存储过程。打印出您传递给存储过程对象的变量。我会特别注意非字母数字字符,例如单引号或转义字符。

于 2012-07-31T06:39:10.530 回答