2

我们有一个真正令人困惑的问题。我们正在尝试使用我们编写的一个小应用程序测试SQL 批量加载,该应用程序传入数据文件 XML、模式和 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

我不熟悉这个特定的实用程序(Interop.SQLXMLBULKLOADLib.dll),但是您是否检查过您的 XML 是否对其架构 .xsd 文件进行了验证?如果 xml 数据文件无效,则 dll 可能会在将 xml 数据文件加载到内存结构中时出现问题?

于 2010-11-18T19:26:35.200 回答
1

我试图理解你的问题,但我对此有更多疑问,

如果您有时间尝试访问以下链接,我认为它肯定对您有用 链接文本

于 2010-11-19T11:22:03.260 回答
1

我知道我做了一次引发此错误消息的事情,但是(经常发生)问题最终与错误消息无关。没什么帮助,唉。

一些疑难解答的想法:尝试确定应用程序生成并提交给 SQL Server 的实际 SQL 命令(SQL Profiler 应该在这里提供帮助),并尽可能“接近”数据库运行它——从 SSMS 中,使用 SQLCMD,直接 BCP 呼叫,无论是什么合适的。详细说明您所做的所有测试和获得的结果可能会有所帮助。

于 2010-11-22T14:42:34.743 回答