У меня есть библиотека .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. Есть ли параметр в строке подключения?