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

Вниз

Обработка исключительных операций   Найти похожие ветки 

 
Alek Aaz   (2003-06-10 11:02) [0]

Хелп!
Сделал уникальный индекс, если вводится дублирующаяся информация возникает EDatabaseError. Отлавливаю и что делать дальше? У меня новая строчка все-таки возникает и БДЕ кажет свой обработчик ошибки.
Делаю так:
Table1.Append;
Table1.Fields[0].AsInteger:=i;
Table1.Fields[1].AsInteger:=random(5999);
Table1.Fields[2].AsString:=s1;
Try
Table1.Post;
Except
on EDatabaseError do
Application.MessageBox("Error","Database error",idOk);
// Что тут надо написать?
End;

Спасибо


 
sniknik   (2003-06-10 11:09) [1]

ничего не надо. если ошибка возникла в блоке
Try
....
Except
End;
то обработчик ошибки БДЕ не показывается(если в этом проблема), у тебя показывает т.к. ты в режиме разработки (из дельфей запускаеш), запусти скомпиленный exe(с явной ошибкой в блоке) там не будет.


 
Alek Aaz   (2003-06-10 11:56) [2]

Нифига.
Данные заносятся в цикле.
Посылаем ошибочные данные - сообщения нет. Но, работа тормозится. Так как DBGrid кажет строчку с новыми введенными данными. Пока не нажмешь ESC ничего работать не будет. Да и цикл вываливается.


 
sniknik   (2003-06-10 12:03) [3]

какие такие циклы? судя по вопросу тебе сообщение мешало. судя по дополнению... нихрена неясно что происходит и от чего пытаешся избавится.

если вываливается из цикла то исключение возникло вне блока.


 
Johnmen   (2003-06-10 12:11) [4]

> // Что тут надо написать?

Table1.Cancel;


 
Alek Aaz   (2003-06-10 12:17) [5]


Table1.Active:=True;
Table2.Active:=True;
// Данные из Table3 раскидываем по 2 таблицам
Table3.First;
Repeat // Поехали
Application.ProcessMessages;
i:=Table3.Fields[0].AsInteger;
s1:=Table3.Fields[1].AsString;
s2:=Table3.Fields[2].AsString;
s3:=Table3.Fields[3].AsString;
j:=Table3.Fields[4].AsInteger;
IF j>0 then // условие занесения в таблицу
Begin
Table1.Append;
Table1.Fields[0].AsInteger:=i;
Table1.Fields[1].AsInteger:=random(5999);
Table1.Fields[2].AsString:=s1;
Table1.Post; // данные в первую таблицу

Table2.Append;
Table2.Fields[1].AsInteger:=i;
Table2.Fields[2].AsInteger:=j;
If j=1 then Table2.Fields[3].AsString:=s3
else Table2.Fields[3].AsString:=s2;
Table2.Post; // во вторую
End;
Table3.Next; // следующая строчка
Until Table3.Eof;
Table3.First;


От try exept решил отказаться в пользу

procedure TForm1.Table1PostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);
begin
Action:=daAbort;
end;


На форме 3 DBGridа связаны с базами. При дубляже данных в DBGride связанным с Table1 вылазит строчка с бубль-данными и не убирается пока не нажмешь ESC. Можно конечно отвязать от Table1 DBGrid, закончить разносить данные и отобразить новые. Но если процесс займет минут 5? А пользователю всеж интересно узнать на какой он стадии...


 
Alek Aaz   (2003-06-10 12:22) [6]

2Johnmen ©
Yes!
Спасибо! Мля... как сам не догадался?!!!!!



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

Форум: "Базы";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
3-7345
alexander_ua
2003-06-09 17:23
2003.07.03
Paradox и Win2000


14-7635
Кен
2003-06-14 06:11
2003.07.03
Где в сети можно БЫСТРО получить бесплатный мэйл и не древовидный


4-7759
oduvan
2003-05-02 12:41
2003.07.03
Как нажать на кнопку в другом окне


6-7582
alt7
2003-04-29 17:04
2003.07.03
Indy и runtime


1-7498
Silla
2003-06-20 13:14
2003.07.03
TLabel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский