在IBM.Data.Informix 2.81.0.0中找不到IfxBulkCopy

时间:2011-11-17 09:53:58

标签: asp.net sql informix bulkinsert data-migration

问:

我的问题包括两部分:

1-我想使用以下类IfxBulkCopy插入大量数据,但 dll IBM.Data.Informix 2.81.0.0中不存在此类如何解决此问题?

注意:该类存在于IBM.Data.Informix 9.0.0.2中!但我无法使用此版本,因为我们使用旧版informix。 当我使用新版本时,我得到以下异常:

Invalid argument

StackTrace = "   at IBM.Data.Informix.IfxConnection.ReplaceConnectionStringParms(String szValue, IfxConnSettings& connSettings)\r\n   at IBM.Data.Informix.IfxConnection.set_ConnectionString(String value)\r\n   at Common.DBConnectionForInformix..ctor(String ConnectionStr...

我的.cs:

 public static void InsertAsBulk(DataTable dt)
        {


            using (IfxConnection cn = new IfxConnection(ConfigurationManager.ConnectionStrings["aa"].ToString()))
            {

                cn.Open();
                using (IfxBulkCopy copy = new IfxBulkCopy(cn))
                {
                    copy.ColumnMappings.Add(1, 2);
                    copy.ColumnMappings.Add(2, 3);
                    copy.ColumnMappings.Add(3, 4);
                    copy.ColumnMappings.Add(4, 5);
                    copy.ColumnMappings.Add(5, 6);
                    copy.ColumnMappings.Add(6, 7);

                    copy.DestinationTableName = "schday";
                    copy.WriteToServer(dt);
                }
            }

        }

2- IfxBulkCopy是否在插入操作期间使用事务概念,或者也可能导致不一致的数据。

1 个答案:

答案 0 :(得分:2)

你的连接字符串没问题。您是否安装了多个版本的驱动程序?我在同一台机器上安装OAT,Informix驱动程序和Informix Client SDK时遇到了同样的问题 这解决了我的问题:
1.卸载驱动程序和客户端sdk + windows restart
2.与数据服务器驱动程序一起安装Client SDK 3.检查系统PATH变量。我添加了

C:\Program Files\IBM Informix Client SDK\bin  
C:\Program Files\IBM Informix Client SDK\bin\netf20  

到系统路径。我不确定是什么问题,也许只是改变PATH变量(没有unistallation)可以修复它。