![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
транзакции
NieL © (2012-11-06 16:35:00)
Q.SQL.Add('START TRANSACTION ...');
Q.SQL.Add('CREATE TABLE ...');
Q.SQL.Add('INSERT...');
Q.SQL.Add('UPDATE...');
Q.SQL.Add('COMMIT FLUSH;');
Q.ExecSQL;
При возникновении ошибки изменения не откатываются (например, создалась таблица, а при insert возникла ошибка, таблица не удаляется). что я не так делаю?
Пупырышкин (2012-11-07 15:55:00) [1]Хотя... если всю логику загнать в хранимку, а с клиента только ее вызывать, то...
Пупырышкин (2012-11-07 15:48:00) [2]
> И. Павел © (07.11.12 08:56) [6]
> А если между rollback и drop table полетит сеть?
То таблица не будет уничтожена. И это не является недостатком предложенной в [4] логики, поскольку, раз уж сеть полетела, то drop table не удастся сделать при любой логике.
Или Вы можете предложить вариант выполнения drop table при слетевшей сети?
И. Павел (2012-11-07 08:56:00) [3]> [4] Пупырышкин (07.11.12 00:16)
А если между rollback и drop table полетит сеть?
И. Павел (2012-11-07 08:55:00) [4]На их сайте такой вопрос уже разбирался (40 сек. гугления):
http://www.elevatesoft.com/forums?action=view&category=dbisam&id=dbisam_general&msg=62116&page=17
ncompatible Operations
The following operations are not compatible with transactions and will cause a transaction to commit if encountered during a transaction.
• Backing Up and Restoring Databases
• Verifying and Repairing Tables
• Creating and Altering Tables
Пупырышкин (2012-11-07 00:16:00) [5]create table
start transaction
try
...
commit
except
rollback
drop table
end
AV (2012-11-06 17:04:00) [6]http://www.elevatesoft.com/forums?action=view&category=dbisam&id=dbisam_general&msg=56305&page=48
Niel (2012-11-06 16:48:00) [7]
> DDL вне ранзакций?
СУБД DBISAM
не знаю, спецификации к СУБД нет
Inovet (2012-11-06 16:42:00) [8]DDL вне ранзакций?