Добрый день. Раньше я работал с FIBPlus и только на Firebird, ну и ещё иногда приходилось использовать сторонние компоненты для доступа к другим БД. Сейчас выросла целая платформа со своей идеологией и правилами, но исключительно для работы конкретно с Firebird. На сегодняшний момент возникла необходимость писать программу которая будет работать с MSSQL, но при этом не хочется иметь больших сложностей при переключении с одной БД на другую. В FIB можно использовать следующий код
Код: Выделить всё
Transaction.startTransaction.
DataSet.Appent;
DataSet.FieldByName('ID').AsString:='12345';
DataSet.Post;
DataSet.Edit;
///user something doing in Application
DataSet.FieldByName('Field1').AsString:='12345';
DataSet.FieldByName('Field2').AsString:='67890';
DataSet.FieldByName('Field3').AsString:='54321';
DataSet.Post;
If Save then
DataSet.Commit
else
DataSet.Rollback;
Но если я использую UniDAC, то у меня в таблице появляется запись сразу же после вызова метода Post. К тому же такой код вообще не работает, т.к. транзакция уже стартовала. Почитав мануал я понял что это из-за включенного по умолчанию AutoCommit - как его выключить? И как им вообще можно управлять( отдельных случаях AutoCommit очень удобен)?