2

本当に紛らわしい問題があります。データファイル XML、スキーマ、および SQL データベース接続文字列を渡す、作成した小さなアプリを使用して、 SQL 一括読み込みをテストしようとしています。

これは非常に単純なアプリです。コードの主要部分は次のとおりです。

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 がインストールされていないために最初にエラーが発生したため、簡単に修正できました。次に、データベースに接続できなかったためエラーが発生しました (接続文字列が間違っています) - 修正されました。今、これがあり、私たちは困惑しています。

助けてくれてありがとう。私たちは本当に頭を悩ませています!

4

3 に答える 3

1

このエラー メッセージが表示されるようなことをしたことは知っていますが、(よくあることですが) 問題はエラー メッセージとは関係ありません。残念ながら、あまり役に立ちません。

いくつかのトラブルシューティングのアイデア: アプリケーションによって生成され、SQL Server に送信された実際の SQL コマンドを特定し (ここでは SQL プロファイラーが役立ちます)、SSMS 内から SQLCMD を使用して、できるだけデータベースの近くで実行します。直接の BCP 呼び出し、適切なものは何でも。行ったすべてのテストと得られた結果を詳述すると役立つ場合があります。

于 2010-11-22T14:42:34.743 に答える
1

私はこの特定のユーティリティ (Interop.SQLXMLBULKLOADLib.dll) に精通していませんが、XML がそのスキーマ .xsd ファイルに対して検証されることを確認しましたか? dll が無効な場合、xml データ ファイルをメモリ構造にロードする際に問題が発生する可能性がありますか?

于 2010-11-18T19:26:35.200 に答える
1

私はあなたの問題を理解しようとしていますが、それにはもっと疑問があります。

時間があれば、下のリンクにアクセスしてみてください。リンク テキストに間違いなく役立つと思い ます。

于 2010-11-19T11:22:03.260 に答える