我从Access 2007数据库中的VB代码运行了一个存储过程。通常代码运行良好;但有时我会收到以下错误:
错误#-2147217900由Microsoft OLE DB Provider生成 ODBC驱动程序[Microsoft] [SQL Server Native Client 10.0] [SQL Server]直接执行SQL;没有光标。
我对此做了很多研究,但我没有提出太多。我见过两个来源:其中一个原因是权限不足,另一个原因是存储过程本身存在问题。我知道权限不是问题。此外,无论我运行多少次,存储过程在管理工作室中都运行得非常好。
请帮助!!!
答案 0 :(得分:5)
与同事合作确定了问题。从根本上说,核心问题是真正的问题被一般的错误信息混淆了;在这种情况下,“无光标”错误。诀窍是弄清楚实际的错误信息是什么。考虑到它后,同事将ODBC驱动程序从“SQL Server Native Client 10”更改为我的帖子中提到的旧的MS SQL Server驱动程序;虽然较新的版本10模糊了错误,但较旧的驱动程序显示存储过程中存在的实际错误(我原先认为并非由于我自己的测试而导致的错误)。所以底线是有两点要点:首先如果你有这个错误尝试上面的技巧尝试揭示实际错误和第二个注释,在这种情况下真正的问题是驱动程序隐藏了编程问题。
答案 1 :(得分:1)
当您收到此错误时,应该计算出传递给存储过程的参数。打印出传递给存储过程对象的变量。我会特别注意非字母数字字符,如单引号或转义字符。