не удается найти IfxBulkCopy в IBM.Data.Informix 2.81.0.0 - PullRequest
1 голос
/ 17 ноября 2011

Q:

Мой вопрос состоит из двух частей:

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 Ответ

2 голосов
/ 17 ноября 2011

Ваша строка подключения в порядке. У вас установлено несколько версий драйверов? У меня была такая же проблема, когда я установил OAT, драйвер Informix и Informix Client SDK на одном компьютере.
Это решило мою проблему:
1. Деинсталляция драйвера и клиента sdk + перезагрузка windows
2. Установка Client SDK вместе с драйвером сервера данных
3. Проверка системной переменной PATH. Я добавил

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

к системному ПУТИ. Я не уверен, что было проблемой, может быть, просто изменение переменной PATH (без удаления) может это исправить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...