我有一个非常大的 SQL 块,我试图在 Delphi 内部针对 Microsoft SQL 数据库执行。我得到这个:
Multiple-step OLE DB operation generated errors.
Check each OLE DB status value, if available. No work was done.
该脚本有多个 sqlIF
语句,后跟存储过程的调用、变量声明BEGIN
等块。最后它返回一些变量值。END
EXEC
SELECT @Variable1 AsName1,@Variable2 AsName2...
上面的多步错误是作为来自 ADO 的 OLEException 出现的,而不是来自 Delphi 代码,并且发生在所有 SQL exec-stored-procedure 发生之后,因此我怀疑它在到达最后阶段时会触发这个 OLE 异常哪个SELECT @Variable1 AsName1,...
可以取回一些变量值供我的程序查看。
我知道这篇已停用/已弃用的 MS KB 文章,不幸的是,这不是我的实际问题:
http://support.microsoft.com/kb/269495
简而言之,知识库文章说要修复注册表项并从连接字符串中删除“持久安全信息”。那不是我的问题。我问这个问题是因为我已经找到了答案,而且我认为,当我在寻找解决方案几个小时后发现了几个问题时,被困在这里的其他人可能不想浪费几个小时来寻找潜在问题。任何想用不同选项添加另一个答案的人都可以,如果它是可重现的,我会选择你的,如果有必要,我会将这个变成社区 Wiki,因为这个“ADO 记录集”可能有十几个晦涩的原因心情不好,对你的 T-SQL 异常不满意。