//-- Конструктор класса сразу инициализирует соединение с БД public plgFBConnect( string DB, //-- имя базы данных или файла базы данных string user = "******", //-- пользователь, под которым производится соединение string pass = "******", //-- пароль пользователя DBServerStateType ServerStateType = DBServerStateType.Standart, string Host = "", //-- имя компьютера или IP адрес сервера, "" - сервер на локальной машине int Port = 3050, //-- порт, по которому сервер слушает обращение к себе int Timeout = 120) { LastSQL = String.Empty; if (!File.Exists(DB)) { ServiceWins.ShowError(new FileNotFoundException(String.Format("Файл {0} не найден.", DB))); this.Dispose(); return; } //-- инициализация необходимых переменных csb = new FbConnectionStringBuilder(); //-- настройка соединения с сервером и БД // csb.Host = Host; //-- Хост, на котором развернута БД // csb.Port = Port; //-- Порт csb.Database = DB; //-- база данных csb.UserID = user; //-- пользователь csb.IsolationLevel = IsolationLevel.ReadCommitted; csb.Port = Port; csb.Charset = "UTF8"; csb.Dialect = 3; csb.ConnectionTimeout = Timeout; //-- время задается в секундах, по умолчанию - 20 секунд, а потом генерируется ошибка csb.Password = pass; //-- тип сервера (Embedded - переносной (portable) if (ServerStateType == DBServerStateType.Standart) { csb.ServerType = FbServerType.Default; } else { csb.ServerType = FbServerType.Embedded; } //-- инициализация строки подключения к базе данных ConnectString = csb.ToString(); try { db = new FbConnection(ConnectString); } catch (Exception ex) { ServiceWins.ShowError(ex); Dispose(); } }
/// <summary> /// Инициализация данных основного соединения с БД (которое будет использоваться по умолчанию в случае соединения с несколькими БД) /// </summary> /// <param name="ConnectType"> Тип соединения</param> /// <param name="DB">Имя базы данных или файла базы данных</param> /// <param name="pass">Пароль пользователя</param> /// <param name="Host">Имя компьютера или IP адрес сервера, "localhost" - сервер на локальной машине</param> /// <param name="Port">Порт, по которому сервер слушает обращение к себе</param> /// <param name="user">Пользователь, под которым производится соединение</param> /// <param name="Timeout">Максимальное время ожидания ответа сервера</param> /// <param name="ServerStateType">Задает тип используемого сервера Стандартный или встраиваемый (имеет значение только для FireBird)</param> /// <param name="mainDB">true (по умолчанию) - задает параметры соединения с основной БД, которые сохраняются внутри класса (функция возвращает null). false - задает параметры соединения /// с вторичной БД, при этом настроенный коннектор возвращается функцией</param> public static Connector Init(DBInterfaceType ConnectType, string DB, string pass, string Host, int Port, string user, int Timeout = 120, DBServerStateType ServerStateType = DBServerStateType.Standart, bool mainDB = true ) { if (mainDB) { MainDB.DB_Timeout = Timeout; MainDB.ConnectType = ConnectType; MainDB.DB_Name = DB; MainDB.DB_Password = pass; MainDB.DB_Host = Host; MainDB.DB_Port = Port; MainDB.DB_User = user; MainDB.ServerStateType = ServerStateType; //-- данные соединения с основной базой данных хранятся внутри статического экземпляра //-- и используются по умолчанию, если не задается параметр Connector в вызывающих функциях return(MainDB); } else { return(new Connector() { DB_Timeout = Timeout, ConnectType = ConnectType, DB_Name = DB, DB_Password = pass, DB_Host = Host, DB_Port = Port, DB_User = user, ServerStateType = ServerStateType }); } }