我有一塊非常大的SQL塊,我試圖在Delphi內部針對Microsoft SQL數據庫執行。我得到這個:通過TADOQuery執行的複雜T-SQL腳本觸發「多步OLE DB操作生成錯誤」。
Multiple-step OLE DB operation generated errors.
Check each OLE DB status value, if available. No work was done.
腳本有多個SQL語句IF
之後BEGIN
和END
塊用的存儲過程,變量聲明,EXEC
內部的調用。最後它返回SELECT @Variable1 AsName1,@Variable2 AsName2...
的一些變量值。
上面的多步錯誤是從ADO中而不是從Delphi代碼中引入的,並且在所有SQL exec存儲過程發生之後發生,因此我懷疑它在它發生這個OLE異常時觸發到達最後階段SELECT @Variable1 AsName1,...
爲我的程序找回幾個變量值來查看它們。
我知道這個退休/棄用MS KB文章,這是不幸的是沒有我的實際問題:
http://support.microsoft.com/kb/269495
總之是KB文章說,以修復註冊表項,並刪除「持續安全信息」,從連接字符串。這不是我的問題。我問這個問題是因爲我已經找到了答案,而且我認爲在這裏遇到困難的其他人可能不想浪費幾個小時來查找潛在問題,因爲在查找解決方案几個小時後發現了幾個問題。任何想用不同選項添加另一個答案的人都沒問題,如果可以重現,我會選擇你的答案,如果有必要,我會把這個答案變成一個社區Wiki,因爲這個「ADO記錄集可能有十幾個不明確的原因心情不好,對你的T-SQL「異常不滿意。
因此您使用了哪種CursorType? – kobik 2016-11-08 11:52:19
無論您何時放棄此聲明,都是默認設置。 – 2016-11-17 03:20:37