2012-07-31 4 views
1

Я хотел бы поблагодарить любого, у кого есть данные об этом раньше времени. Я разработал программу, которая использует класс SQLXMLBulkLoad4 для массового загрузки xml-файла в промежуточную таблицу, а затем использует хранимую процедуру для обновления производственной таблицы этими данными. Здесь мы находимся в растерянности. Однако все очень хорошо работало на моем компьютере разработки, однако, переместив все необходимые элементы и отбросив/зарегистрировав правильные .dll-файлы на рабочий сервер, я получаю фатальную ошибку в журнале ошибок SqlBulkLoad. Вот текст журнала (в формате XML):Перемещена программа SQLXMLBulkLoad на рабочий сервер, теперь получает неверную строку строки ошибки

<?xml version="1.0"?> 
<Result State="FAILED"> 
    <Error> 
     <HResult>0x80040154I32</HResult> 
     <Description><![CDATA[Invalid connection string.]]></Description> 
     <Source>XML BulkLoad for SQL Server</Source> 
     <Type>FATAL</Type> 
    </Error> 
</Result> 

Я не понимая, в то время как вдруг эта ошибка появляется. Я экспериментировал с разными типами строк подключения, но безрезультатно. Насколько я понимаю, использование класса SqlXmlBulkLoad4 вызвало строку OLEDB Connection. Вот пример моей строки подключения для SQLXMLBulkLoad:

<add key="ServerNameBulkLoad" value="Provider=SQLNCLI10;Server=ServerName;Database=DBName;Trusted_Connection=Yes;"/> 

Я также попытался вручную регистрации sqloledb.dll на сервере снова.

Любые предложения?

+1

Протокол TCP TCP включен для удаленного доступа? –

+0

Да. Это наш основной сервер prod, в котором работают наши отчеты, некоторые даже ежечасно. Я не верю, что Протокол будет проблемой, но я проверю это. –

+0

Я просто подтвердил, что протоколы TCP/IP включены для удаленной доступности. Есть еще предложения? –

ответ

1

Хорошо, после тестирования связки строк подключения (спасибо www.connectionstrings.com) Я наконец нашел решение своей проблемы, и это была фактически строка подключения. Правильная строка соединения (для использования на рабочем сервере) такая же, как и выше, кроме Provider = SQLOLEDB.1 вместо SQLNCLI10. Я полагаю, что это связано с тем, что на сервере запущена программа, ну, скажем, устаревший закон. Тем не менее проблема решена. Спасибо RGI за вашу помощь!