2010-07-30 3 views
2

у нас есть настоящая запутанная проблема. Мы пытаемся протестировать SQL Bulk Load, используя небольшое приложение, которое мы написали, которое проходит в XML-файле данных, схеме и строке подключения базы данных SQL.Проблема во время загрузки SQL Bulk

Это очень прямолинейный приложение, вот основная часть кода:

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

Какие СУБД и какая версия? –

+0

Microsoft SQL. Не знаю, какую версию, но мы используем программное обеспечение 2008 для взаимодействия с ним. Это помогает? –

ответ

1

Я не знаком с этой конкретной утилитой (Interop.SQLXMLBULKLOADLib.dll), но вы проверили, что ваш XML проверяет на свой файл .xsd схемы? Возможно, у dll возникли проблемы с загрузкой файла данных xml в структуры памяти, если он недействителен?

1

Я пытаюсь понять вашу проблему, но я больше сомневаюсь в том, что

Если у вас время пытаются получить доступ на ссылку ниже, я думаю, что это, безусловно, полезно для вас link text

1

Я знаю, что я сделал что-то, что однажды подняло это сообщение об ошибке, но (как это часто бывает) проблема не имела никакого отношения к сообщению об ошибке. Не очень помогает, увы.

Некоторые идеи по устранению неполадок: попытайтесь определить фактическую команду SQL, сгенерированную и отправленную приложением на SQL Server (SQL Profiler должен помочь здесь) и запускать ее как можно ближе к базе данных - изнутри SSMS , используя SQLCMD, прямой вызов BCP, что угодно. Детализация всех тестов, которые вы делаете, и результаты, которые вы получаете, могут помочь.