Интерфейс ITransactionLocal не поддерживается - PullRequest
4 голосов
/ 04 декабря 2008

У меня есть библиотека .NET 3.5 C #, которая использует OleDb для извлечения данных из файла Excel и возврата их в DataRowCollection, которая используется табличной функцией CLR в SQL Server 2005.

Функция работает нормально, когда я использую SELECT на ней. Но если я хочу использовать его вывод в качестве источника для INSERT INTO таблицы, я получаю следующую ошибку:

System.InvalidOperationException: интерфейс ITransactionLocal не поддерживается поставщиком «Microsoft.Jet.OLEDB.4.0». Локальные транзакции недоступны у текущего провайдера. System.InvalidOperationException: в System.Data.OleDb.OleDbConnectionInternal.EnlistTransactionInternal (транзакция транзакции, логическое значение ForceAutomatic) в System.Data.OleDb.OleDbConnection.Open () в GetExcelFunction.GetFile (String strFileName) в GetExcelFunction.InitMethod (String strFileName)

Итак, как мне это решить? Остановить ли соединение от создания транзакции? Если так, то как? Я не вижу соответствующих методов или свойств в OleDbConnection. Есть ли параметр в строке подключения?

1 Ответ

8 голосов
/ 06 апреля 2009

добавить "; OLE DB Services = -4" в строку подключения.

...