OleDb を使用して Excel ファイルからデータを取得し、それを SQL Server 2005 の CLR テーブル値関数で使用される DataRowCollection に返す .NET 3.5 C# ライブラリがあります。
SELECT を使用すると、関数は正常に機能します。しかし、その出力をテーブルへの INSERT INTO のソースとして使用したい場合、次のエラーが発生します。
System.InvalidOperationException: ITransactionLocal インターフェイスは、'Microsoft.Jet.OLEDB.4.0' プロバイダーによってサポートされていません。ローカル トランザクションは、現在のプロバイダーでは利用できません。System.InvalidOperationException: System.Data.OleDb.OleDbConnectionInternal.EnlistTransactionInternal (トランザクション トランザクション、Boolean forcedAutomatic) で System.Data.OleDb.OleDbConnection.Open() で GetExcelFunction.GetFile(String strFileName) で GetExcelFunction.InitMethod(String strFileName) で
それで、どうすればこれを解決できますか?接続によるトランザクションの作成を停止しますか? もしそうなら、どのように?OleDbConnection に関連するメソッドやプロパティがありません。接続文字列にパラメーターはありますか?