ISecurityConnection.StartTransaction

Синтаксис Fore

StartTransaction(AutoCommit: Boolean): IConnectionTransaction;

Синтаксис Fore.NET

StartTransaction(AutoCommit: Boolean): Prognoz.Platform.Interop.Metabase.IConnectionTransaction;

Параметры

AutoCommit. Параметр, отвечающий за автоматическое сохранение измененных данных на сервере БД.

Описание

Метод StartTransaction инициализирует новую транзакцию с БД.

Комментарии

Если в качестве значения параметра AutoCommit передается значение True и в коде нет явного вызова методов Commit либо Rollback, то при уничтожении транзакции автоматически будет вызван метод Commit для сохранения всех измененных данных. Если параметр AutoCommit имеет значение False, то при аналогичных условиях будет вызван метод Rollback для отката всех изменений.

Уничтожение транзакции осуществляется при явном использовании оператора Dispose для соответствующего объекта в коде. Также уничтожение незавершенных транзакций осуществляется сборщиком мусора при завершении выполнения кода.

Пример Fore

Sub Main;
Var
   MB: IMetabase;
   DB: IDatabaseInstance;
   Connect: ISecurityConnection;
   Command: IDalCommand;
   Tran: IConnectionTransaction;
Begin
   MB := MetabaseClass.Active;
   DB := MB.ItemById("BD").Open(NullAs IDatabaseInstance;
   Connect := DB.Connection;
   Command := Connect.CreateCommand("Insert Into Table_1 values ('A',1)");
   Tran := Connect.StartTransaction(False);
Try
   Command.Execute;
   Tran.Commit;
Except
   Tran.Rollback;
End Try;
   Command.Close;
End Sub Main;

После выполнения примера будет осуществлено подключение к серверу БД, на который настроена база данных репозитория "BD". Для данного соединения будет создан и выполнен SQL-запрос, осуществляющий вставку новой записи в таблицу с физическим наименованием "Table_1". Если будут присутствовать несохраненные данные, то они будут сохранены на сервере.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.Db;

Public Shared Sub Main(Params: StartParams);
Var
   MB: IMetabase;
   DB: IDatabaseInstance;
   Connect: ISecurityConnection;
   Command: IDalCommand;
   Tran: IConnectionTransaction;
Begin
   MB := Params.Metabase;
   DB := MB.ItemById["BD"].Open(NullAs IDatabaseInstance;
   Connect := DB.Connection;
   Command := Connect.CreateCommand("Insert Into Table_1 values ('A',1)");
   Tran := Connect.StartTransaction(False);
Try
   Command.Execute();
   Tran.Commit();
Except
   Tran.Rollback();
End Try;
   Command.Close();
End Sub;

См. также:

ISecurityConnection