Как мне подключиться к Informix с помощью .NET? - PullRequest
3 голосов
/ 08 июля 2010

Справочная информация:

  • Visual Studio 2010 (.NET Framework 4.0)
  • Informix Server 7.31
  • Также был установлен Informix ClientSDK 3.50 TC7 (32-разрядная версия Windows).

Я пытался предложить несколько способов подключения к серверу Informix через Интернет, но все они не работают для меня по любой причине. Я просмотрел такие статьи, как Connect Informix с ADO.Net и использовал ConnectionStrings.com для генерации строки подключения.

Когда я иду в Visual Studio, я делаю следующее:

  1. Обозреватель серверов
  2. Щелкните правой кнопкой мыши Подключения данных> Добавить подключение ...
  3. Источник данных Microsoft ODBC | Поставщик данных .NET Framework для ODBC
  4. Использовать строку подключения (скопировано / вставлено с использованием веб-сайта ConnectionString ).
  5. Тестовое соединение

РЕЗУЛЬТАТ: ОШИБКА [IM002] [Microsoft] [Диспетчер драйверов ODBC] Не найдено имя источника данных и не указан драйвер по умолчанию.

  1. Server Explorer
  2. Щелкните правой кнопкой мыши Data Connections> Add Connection ...
  3. Другое | Поставщик данных .NET Framework для ODBC
  4. Использовать строку подключения (копируется / вставляется с помощью ConnectionString веб-сайта).
  5. Тестовое соединение

РЕЗУЛЬТАТ: ОШИБКА [IM002] [Microsoft] [Диспетчер драйверов ODBC] Не найдено имя источника данных и не указан драйвер по умолчанию.

  1. Обозреватель серверов
  2. Щелкните правой кнопкой мыши Data Connections> Add Connection ...
  3. Другое | Поставщик данных .NET Framework для OLE DB
  4. Поставщик OLE DB: Поставщик OLE DB IBM Informix
  5. Ссылки на данные ...

РЕЗУЛЬТАТ: Указанная процедура не найдена. (Исключение из HRESULT: 0x8007007F)

Кроме того, я не был уверен, что на самом деле заполнить там ...

О, и я даже пытался использовать пример кода , предоставленный в первой статье , подставляя в мою информацию соединения:

  • ВЕДУЩИЙ: IP-адрес сервера
  • SERVICENUM: номер порта
  • SERVER: имя сервера
  • БАЗА ДАННЫХ: база данных, над которой я работаю
  • USER: идентификатор пользователя
  • PASS: пароль

Пример кода, который я скачал / изменил:

using System;
using IBM.Data.Informix;

namespace IfxAdoPres.Basics {
    public class BasicConnection {
        const string HOST = "192.168.OBFUSCATED";
        const string SERVICENUM = "5000";
        const string SERVER = "myServer";
        const string DATABASE = "myDatabase";
        const string USER = "myUserID";
        const string PASSWORD = "myPassword";

        public IfxConnection conn = new IfxConnection();
        public BasicConnection() {}

        public void MakeConnection() {
            string ConnectionString = "Host = " + HOST + "; " +
                "Service=" + SERVICENUM + "; " +
                "Server=" + SERVER + "; " +
                "Database=" + DATABASE + "; " +
                "User Id=" + USER + "; " +
                "Password=" + PASSWORD + "; ";

            conn.ConnectionString = ConnectionString;
        }

        public void CloseConnection() {
            conn.Close();
        }
    }
}

Я получаю сообщение об ошибке в строке conn.ConnectionString = ConnectionString; Исключение гласит «Неверный аргумент» без InnerException (в основном очень бесполезный). Стеки вызовов:

  • Basics.exe! IfxAdoPres.Basics.BasicConnection.MakeConnection ()
  • Basics.exe! IfxAdoPres.Basics.Test.Main (string [] args = {string [0]})
  • [Внешний код]

Я застрял и понятия не имею, что делать ...: - /

1 Ответ

1 голос
/ 04 августа 2010

Что ж, я вернулся к статье: http://www.ibm.com/developerworks/data/library/techarticle/dm-0510durity/

После удаления всего и начального запуска демонстрационный код, похоже, заработал после установки IBM Informix Client SDK 3.5 и использования Setnet32 для настройки моих параметров..

Должно быть, я что-то испортил, поскольку у меня изначально была установлена ​​пара разных версий драйвера Informix.

...