1

我有一个存储过程,我从VB代码在Access 2007数据库中运行。通常代码运行良好;不过有时我收到以下错误:“直接执行SQL;无游标。”错误在Access 2007 VB代码

Error # -2147217900 was generated by Microsoft OLE DB Provider for ODBC Drivers [Microsoft][SQL Server Native Client 10.0][SQL Server]Executing SQL directly; no cursor.

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

请帮忙!!!

回答

4

与同事一起工作,发现问题。从根本上来说,核心问题是真正的问题被一个通用的错误信息混淆了;在这种情况下,“无游标”错误。诀窍是弄清楚实际的错误信息是什么。经过一番思考,一位同事将ODBC驱动程序从我的文章中提到的“SQL Server Native Client 10”改为旧的MS SQL Server驱动程序;而较新的版本10模糊了错误,较旧的驱动程序揭示了存储过程中的实际错误(我认为原来由于我自己的测试而不是这种情况)。所以底线是有两点可以从中得到:首先,如果你有这个错误尝试上述技巧来尝试揭示实际的错误和第二个注意事项,在这种情况下真正的问题是,司机隐藏编程问题。

+0

这里同样的情况。试过这个解决方案,我能找到的本地客户端的唯一老版本是9,而且我的平台(win8.1)不支持这个版本。有没有其他的技巧来揭示真正的错误? – antipattern 2017-03-16 14:36:58

1

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