Создание соединения с СУБД

Обычное соединение

Перед созданием соединения предварительно необходимо инициализировать драйвер и подготовить описание соединения, в котором указаны параметры подключения. Для этого, в зависимости от того какая СУБД используется на сервере, необходимо создать объект одного из следующих классов:

Совет. Для получения подробной информации о поддерживаемых версиях СУБД обратитесь к статье «Поддерживаемые СУБД».

Для полученного объекта выполнить метод 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);
    //...

Дальнейшая работа с созданным соединением описана в следующих подразделах:

См. также:

Введение