Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.04;
Скачать: CL | DM;

Вниз

Почему не работает ТРАНЗАКЦИЯ?   Найти похожие ветки 

 
nikolo ©   (2002-10-16 16:46) [0]

Проблема в следующем: в этом примере делаю удаление из двух таблиц Paradox (сначала из подчиненной Table_2, потом из главной Table_2). При удалении из главной Table_1 специально делаю ошибку для отладки. Так вот, программа совершенно не реагирует на Rollback, т.е. первое удаление проходит. Объясните, пожалуйста, почему?

procedure TfmGroup.Button1Click(Sender: TObject);
begin
if ShowQuestionYN("Удалить ?", 2) then with Database1, Query1 do try
if InTransaction then Rollback;
StartTransaction;
SQL.Text := "Delete From "Table_2.db" Where Group_Id=3";
ExecSQL;
SQL.Text := "Delete From "Table_1.dbW" Where Id=3"; //здесь специально для примера делаю ошибку (dbW), чтобы был Exeption
ExecSQL;
Commit;
except
On E: Exception do begin
ShowMessage("Ошибка!"#10#10+E.Message);
if InTransaction then Rollback;
end;
end;
end;


 
Max Zyuzin ©   (2002-10-16 16:51) [1]

Думаю потому, что у парадокса в принципе нету транзакций.


 
Johnmen ©   (2002-10-16 16:56) [2]

>Max Zyuzin © (16.10.02 16:51)

Ага......:)))



 
nikolo ©   (2002-10-16 16:58) [3]

Во косяк, а как быть? Выхода нет вообще? Только не говорите использовать Oracle, пожалуйста :)


 
Val ©   (2002-10-16 17:09) [4]

1.можно следить самому.
2.можно попробовать использовать кешированные изменения.


 
Дремучий ©   (2002-10-16 20:38) [5]

у парадокса есть транзакции, правда с ограничениями
а какой эффект в примере ожидается автором на выходе?


 
MsGuns ©   (2002-10-16 20:51) [6]

Транзакции есть и у Парадокса, но ТОЛЬКО ПОКА ВЫ НЕ СМЕНИТЕ ТЕКУЩУЮ ТАБЛИЦУ ! Т.е. можно в принципе сканированием изменить таблицу, а потом откатить все назад (правда, откат идет дольше, чем собственно коррекция). Но если при изменении Вы "скачите" от одного РД к другому, ВСЕ изменениия, сделанные в первом НД, немедленно будут запостированы , даже если у вас был буфер. (Фаронов, а я подтверждаю)

Вообще же использовать SQL-запросы для интерфейс-коррекции БД (т.е.когда вводит, удаляет и редактирует юзер), не самый лучший путь для Paradox/dBase БД. BDE прекрасно справляется с мощными запросами по выборке или модификации целых таблиц, но совершенно беспомощна, когда пытаешься "эскюэлить" одиночные правки.



Страницы: 1 вся ветка

Текущий архив: 2002.11.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
4-11554
Slym
2002-09-23 07:19
2002.11.04
Где и как хранить данные ассоциированные с определенным окном


1-11199
Sego
2002-10-24 19:58
2002.11.04
чтение открытого текстового файла.


14-11397
kronprince
2002-10-04 10:44
2002.11.04
Надо на него напустить MJH :) - он популярно объяснит


14-11474
Ketmar
2002-10-13 13:10
2002.11.04
заколебал WinWord своими глюками!


7-11530
TAndrew
2002-08-28 19:04
2002.11.04
Права пользователя при запуске программы