代码之家  ›  专栏  ›  技术社区  ›  Chuck Le Butt

SQL批量加载期间出现问题

  •  2
  • Chuck Le Butt  · 技术社区  · 14 年前

    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,所以很容易修复。然后出现了一个错误,因为它无法连接到数据库(错误的连接字符串)-已修复。现在有了这个,我们很困惑。

    谢谢你的帮助。我们真是抓狂!

    3 回复  |  直到 14 年前
        1
  •  1
  •   Hath1    14 年前

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

        2
  •  1
  •   Adalarasan Sachithanantham    14 年前

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

    如果你有时间尝试访问下面的链接,我想它肯定会对你有用 link text

        3
  •  1
  •   Philip Kelley    14 年前

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

    一些疑难解答想法:尝试确定应用程序生成并提交给SQL Server的实际SQL命令(SQL Profiler在这里应该有帮助),并尽可能“靠近”数据库运行它--从SSMS内部,使用SQLCMD、直接BCP调用,任何适当的方法。详细说明你所做的所有测试和得到的结果可能会有所帮助。