Перед созданием соединения предварительно необходимо инициализировать драйвер и подготовить описание соединения, в котором указаны параметры подключения. Для этого, в зависимости от того какая СУБД используется на сервере, необходимо создать объект одного из следующих классов:
DalDb2Driver. Для работы с СУБД DB2;
DalMsSql2008Driver. Для работы с СУБД Microsoft SQL Server 2008;
DalMsSql2012Driver. Для работы с СУБД Microsoft SQL Server 2012\2014;
DalOleDbDrivers. Для работы с коллекцией драйверов OLE DB, установленных в операционной системе;
DalOrcl8Driver. Для работы с СУБД Oracle;
DalTrdtDriver. Для работы с СУБД Teradata;
DalPostgresDriver. Для работы с СУБД PostgreSQL;
DalSQLiteDriver. Для работы с СУБД SQLite.
Совет. Для получения подробной информации о поддерживаемых версиях СУБД обратитесь к статье «Поддерживаемые СУБД».
Для полученного объекта выполнить метод IDalDriver.CreateDescriptor:
Var
//...
ORCLDriver, MSSQLDriver: IDalDriver;
ORCLDescriptor, MSSQLDescriptor: IDalConnectionDescriptor;
//...
Begin
//...
ORCLDriver := New DalOrcl8Driver.Create;
MSSQLDriver := New DalMsSql2008Driver.Create;
//Описания соединения
ORCLDescriptor := ORCLDriver.CreateDescriptor;
MSSQLDescriptor := MSSQLDriver.CreateDescriptor;
В полученном описании в свойстве IDalConnectionDescriptor.Params необходимо задать параметры подключения. Список параметров формируется ядром «Форсайт. Аналитическая платформа» для каждого драйвера индивидуально, наименования параметров могут отличаться:
Var
//...
ORCLDescriptor, MSSQLDescriptor: IDalConnectionDescriptor;
ORCLParams, MSSQLParams: IDalConnectionDescriptorParams;
//...
Begin
//...
//Параметры соединения
ORCLParams := ORCLDescriptor.Params;
ORCLParams.Find("User Name").Value := "User";
ORCLParams.Find("Password").Value := "Password";
ORCLParams.Find("Host BSTR").Value := "ORCL_Server";
ORCLParams.Find("Schema").Value := "PPRepository";
MSSQLParams := MSSQLDescriptor.Params;
MSSQLParams.Find("User Name").Value := "User";
MSSQLParams.Find("Password").Value := "Password";
MSSQLParams.Find("Host BSTR").Value := "MSSQL_Server";
MSSQLParams.Find("Database").Value := "PPRepository";
После установки параметров при вызове метода IDalConnectionDescriptor.CreateConnection будет создано новое соединение:
Var
//...
ORCLDescriptor, MSSQLDescriptor: IDalConnectionDescriptor;
ORCLConnect, MSSQLConnect: IDalConnection;
//...
Begin
//...
//Создание соединения
ORCLConnect := ORCLDescriptor.CreateConnection;
MSSQLConnect := MSSQLDescriptor.CreateConnection;
Созданное соединение теперь может использоваться для получения информации об объектах СУБД, для управления транзакциями с сервером или для создания команды, которая будет выполнять SQL-запросы к серверу.
При использовании СУБД на базе Oracle 9.x и выше, либо MSSQL 2008, доступно создание специализированного соединения, в рамках которого можно выполнять асинхронные запросы. Асинхронное выполнение позволяет, не дожидаясь результата выполнения SQL-запроса, продолжить работу в приложении. Для создания такого соединения необходимо описание соединения привести к типу IDalConnectionDescriptor2 и в свойстве IDalConnectionDescriptor2.ConnectionType указать значение DalConnectionType.Async:
Var
//...
ORCLDriver: IDalDriver;
ORCLDescriptor: IDalConnectionDescriptor;
//...
Begin
//...
ORCLDriver := New DalOrcl8Driver.Create;
//Описания соединения
ORCLDescriptor := ORCLDriver.CreateDescriptor;
//Установка признака создания соединения для асинхронного выполнения запросов
(ORCLDescriptor As IDalConnectionDescriptor2).ConnectionType := DalConnectionType.Async;
После указания параметров подключения и выполнения метода IDalConnectionDescriptor.CreateConnection будет создано специализированное соединение:
Var
//...
ORCLDriver: IDalDriver;
ORCLDescriptor: IDalConnectionDescriptor;
ORCLParams: IDalConnectionDescriptorParams;
ORCLConnect: IDalConnection;
//...
Begin
//...
ORCLDriver := New DalOrcl8Driver.Create;
//Описания соединения
ORCLDescriptor := ORCLDriver.CreateDescriptor;
//Установка признака создания соединения для асинхронного выполнения запросов
(ORCLDescriptor As IDalConnectionDescriptor2).ConnectionType := DalConnectionType.Async;
//Параметры соединения
ORCLParams := ORCLDescriptor.Params;
ORCLParams.Find("User Name").Value := "User";
ORCLParams.Find("Password").Value := "Password";
ORCLParams.Find("Host BSTR").Value := "ORCL_Server";
ORCLParams.Find("Schema").Value := "PPRepository";
//Создание соединения
ORCLConnect := ORCLDescriptor.CreateConnection;
Если с сервером уже создано обычное соединение, то его можно преобразовать используя метод IDalConnection2.Clone:
Var
//...
ORCLDescriptor: IDalConnectionDescriptor;
ORCLConnect, ORCLAsyncConnect: IDalConnection;
//...
Begin
//...
//Создание соединения
ORCLConnect := ORCLDescriptor.CreateConnection;
//Соединение для выполнения асинхронных запросов
ORCLAsyncConnect := (ORCLConnect As IDalConnection2).Clone(DalConnectionType.Async);
//...
Дальнейшая работа с созданным соединением описана в следующих подразделах:
См. также: