Подключитесь к Informix через C # - PullRequest
0 голосов
/ 26 июня 2018

Мне нужно подключиться к Informix, но то, что казалось легкой задачей, оказалось немного раздражающим. Я скачал Client SDK и добавил ссылку на DLL.

Вот код:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using IBM.Data.Informix;

namespace ConsoleApp3
{
    class Program
    {

        public static IfxConnection conn { get; set; }

        public static IfxCommand cmd { get; set; }

        /// <summary>
        /// Opens a database connection
        /// </summary>
        /// <param name="host">Set the host of the database. Ex: 192.168.0.1</param>
        /// <param name="service">Set the service number (port). Ex: 1525</param>
        /// <param name="server">Set the server name. Ex: srv</param>
        /// <param name="database">Set the database name. Ex: InformixDB</param>
        /// <param name="userID">Set the userID. Ex: informix</param>
        /// <param name="password">Set the password. Ex: P@ssw0rd</param>
        /// <returns></returns>
        public static void OpenConnection(string host, string service, string server, string database, string userID, string password)
        {
            string ConnectionString =
                "Host = " + host + "; " +
                "Service=" + service + "; " +
                "Server=" + server + "; " +
                "Database=" + database + "; " +
                "User Id=" + userID + "; " +
                "Password=" + password + "; ";

            try
            {
                conn = new IfxConnection();
                conn.ConnectionString = ConnectionString;
                conn.Open();
            }
            catch (Exception e)
            {
                var ex = new Exception(string.Format("{0} - {1}", e.Message, (e as Win32Exception).ErrorCode));
                throw ex;
            }
        }
        static void Main(string[] args)
        {
            OpenConnection("", "", "", "", "", "");

            Console.ReadKey();
        }
    }
}

Я знаю, что у меня нет аргументов в отношении метода OpenConnection. И это не важно в этом случае, потому что оно выдает исключение даже до попытки подключения. Выдает исключение при создании объекта IfxConnection. Он говорит "Невозможно загрузить DLL 'iclit09b.dll'".

Согласно IBM , вероятной причиной является то, что INFORMIXDIR и PATH должны быть заданы как переменные среды. Но они не совсем понимают, что именно должно быть установлено ...

Хотелось бы получить небольшую помощь.

1 Ответ

0 голосов
/ 26 июня 2018

Этот старый технический документ содержит простое руководство по настройке клиентов Windows (включая необходимые значения переменных среды PATH и INFORMIXDIR)

http://www -01.ibm.com / поддержка / docview.wss? UID = swg21083599

...