IDalConnection.InTransaction

Синтаксис

InTransaction: Boolean;

Описание

Метод InTransaction возвращает признак наличия инициализированной транзакции с БД.

Комментарии

Для инициализации транзакции используйте метод IDalConnection.StartTransaction. Если транзакция инициализирована и может использоваться в текущий момент, то метод InTransaction вернет значение True. Если транзакция не доступна (была завершена ранее, закрыта по таймауту, не была инициализирована по каким-либо причинам и прочее), то метод вернет значение False.

Для применения изменений, выполненных в рамках транзакции, используйте метод IDalConnection.Commit, для отката изменений - IDalConnection.Rollback.

Пример Fore

Sub UserProc;
Var
    Driver: IDalDriver;
    Connect: IDalConnection;
    Command: IDalCommand;
    ConnectDesc: IDalConnectionDescriptor;
    ConnectDescParams: IDalConnectionDescriptorParams;
Begin
    Driver := New DalOrcl8Driver.Create;
    ConnectDesc := Driver.CreateDescriptor;
    //Параметры подключения
    ConnectDescParams := ConnectDesc.Params;
    ConnectDescParams.Find("User Name").Value := "User";
    ConnectDescParams.Find("Password").Value := "Password";
    ConnectDescParams.Find("Host BSTR").Value := "OrclServer";
    ConnectDescParams.Find("Schema").Value := "Repository";
    //Создание соединения
    Connect := ConnectDesc.CreateConnection;
    Command := Connect.CreateCommand;
    //Команда
    Command.SQL := "Insert Into Table_1 values ('AA','BB',11,22,'12.12.2002')";
    //Инициализация транзакции
    Connect.StartTransaction;
    If Connect.InTransaction Then
        Command.Execute;
        //Завершение транзакции с сохранением данных
        Connect.Commit;
    End If;
    Command.Close;
    Connect.Close;
End Sub UserProc;

При выполнении примера будет осуществлено подключение к репозиторию с указанными параметрами расположения. После этого произойдет инициализация транзакции. Если никаких ошибок не произошло и транзакция инициализирована, то будет выполнен SQL-запрос, который добавляет новую запись в таблицу «Table_1».

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.PiLibNet.Utils;

Sub UserProc();
Var
    Driver: DalOrcl8Driver = ComCreator.Instance.CoCreate<DalOrcl8DriverClass>();
    Connect: IDalConnection;
    Command: IDalCommand;
    ConnectDesc: IDalConnectionDescriptor;
    ConnectDescParams: IDalConnectionDescriptorParams;
Begin
    ConnectDesc := Driver.CreateDescriptor();
    //Параметры подключения
    ConnectDescParams := ConnectDesc.Params;
    ConnectDescParams.Find("User Name").Value := "User";
    ConnectDescParams.Find("Password").Value := "Password";
    ConnectDescParams.Find("Host BSTR").Value := "OrclServer";
    ConnectDescParams.Find("Schema").Value := "Repository";
    //Создание соединения
    Connect := ConnectDesc.CreateConnection();
    Command := Connect.CreateCommand();
    //Команда
    Command.SQL := "Insert Into Table_1 values ('AA','BB',11,22,'12.12.2002')";
    //Инициализация транзакции
    Connect.StartTransaction();
    If Connect.InTransaction() Then
        Command.Execute();
        //Завершение транзакции с сохранением данных
        Connect.Commit();
    End If;
    Command.Close();
    Connect.Close();
End Sub;

См. также:

IDalConnection