Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
4-11560
Igor_i
2002-09-23 13:37
2002.11.04
Как скопировать в буфер имена всех файлов и папок корня CD


1-11224
Weare
2002-10-24 17:43
2002.11.04
Не работает печать


14-11424
Dmitriy Polskoy
2002-10-15 10:24
2002.11.04
Delphi Personal


14-11433
Cr@sh
2002-09-29 16:50
2002.11.04
Как вы относитесь к поминутной оплате телефона?


3-11119
AndreyAG
2002-10-16 14:25
2002.11.04
TQuery





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский