2010-02-08 24 views
0

我正在使用C++和ADO將數據添加到SQL Server 2005數據庫。當爲sql_variant列調用Recordset更新方法時,我得到錯誤DB_E_ERRORSOCCURRED和錯誤消息Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.如果我要添加的值爲NULL,則所有工作都正常,並且所有值都轉到非sql_variant類型的字段。Recordset在更新sql_variant字段時更新錯誤

有誰知道我可能會做錯什麼?

謝謝

[編輯]我有更多的信息。我們存儲的值是空字符串 - ADO似乎希望將它作爲nchar(0)存儲在sql_variant中,這當然不是有效的SQL數據類型。有沒有辦法使用ADO批處理命令獲取sql_variant中的空字符串?

+0

DB_E_ERRORSOCCURRED表明有幾個錯誤,並且你必須尋找到由OLEDB對於每一列返回,以確定實際問題的狀態。 [Microsoft開發人員網絡的綁定數據值](http://msdn.microsoft.com/zh-cn/library/ms718116(v = vs.85).aspx)提供了有關綁定功能的信息,並且有[狀態](http://msdn.microsoft.com/en-us/library/ms722617(v = vs.85).aspx),它提供有關DB_E_ERRORSOCCURRED的詳細信息。 – 2014-05-03 19:24:04

回答

0

您只顯示最外面的錯誤,並且錯誤提示您需要檢查內部錯誤以找出問題。道歉,我是一名VB開發人員,但如果你通過連接對象上的錯誤進行循環,則應該能夠查明實際錯誤。

從我的經典ADO日子來看,多步錯誤通常指向試圖將大量東西填充到列中,例如字符串太大或數字精度太高。

希望這會有所幫助。

埃德

+0

埃德,感謝您的建議。我已經被拖上了一個不同的項目幾天,所以可能有一段時間我纔有機會回到這個位置。 – 2010-02-10 02:15:02