2010-07-30 22 views
2

我們有一個真正令人困惑的問題。我們正在嘗試使用我們編寫的一個小應用來測試SQL批量加載,該應用將數據文件XML,模式和SQL數據庫連接字符串傳入。SQL Bulk Load期間的問題

這是一個非常直接的應用,這裏的代碼的主要部分:

SQLXMLBULKLOADLib.SQLXMLBulkLoad4Class objBL = new SQLXMLBULKLOADLib.SQLXMLBulkLoad4Class(); 
objBL.ConnectionString = "provider=sqloledb;Data Source=SERVER\\SERVER; Database=Main;User Id=Username;Password=password;"; 
objBL.BulkLoad = true; 
objBL.CheckConstraints = true; 
objBL.ErrorLogFile = "error.xml"; 
objBL.KeepIdentity = false; 
objBL.Execute("schema.xml", "data.xml"); 

正如你所看到的,這是很簡單,但我們正在從我們傳遞庫下面的錯誤這東西到:Interop.SQLXMLBULKLOADLib.dll

賀電:

Failure: Attempted to read or write protected memory. This is often an indication that other memory has been corrupted

我們不知道是什麼導致了它或它的正確含義。

在此之前,我們首先發生錯誤,因爲SQLXML4.0沒有安裝,所以很容易修復。然後有一個錯誤,因爲它無法連接到數據庫(錯誤的連接字符串) - 修復。現在有這個,我們只是困惑。

感謝您的任何幫助。我們真的在撓頭!

+0

什麼DBMS和什麼版本? – 2010-11-18 19:36:46

+0

Microsoft SQL。不知道什麼版本,但我們使用2008年的軟件與它接口。這有幫助嗎? – 2010-11-22 10:17:05

回答

1

我不熟悉這個特定的實用程序(Interop.SQLXMLBULKLOADLib.dll),但是您是否檢查過您的XML驗證其架構.xsd文件?如果dll數據文件無效,可能會將xml數據文件加載到內存結構中。

1

我試圖理解你的問題,但我有更多的疑問,

如果妳有時間嘗試訪問以下鏈接,我認爲這將肯定對你有用 link text

1

我知道我做了一次提出這個錯誤消息的一次,但(經常發生),問題最終與錯誤消息無關。沒什麼幫助,唉。

一些故障排除的想法:嘗試確定應用程序生成並向SQL Server提交的實際SQL命令(SQL Profiler應該在這裏有幫助),並從SSMS內部儘可能「靠近」數據庫運行它,使用SQLCMD,直接BCP調用,任何適當的。詳述你所做的所有測試和你得到的結果可能會有所幫助。