Главная страница
    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
14-7714
Dead Moroz
2003-06-17 00:13
2003.07.03
Delphi main questions


7-7748
Владимир3
2003-04-22 12:49
2003.07.03
как получить значение уровня громкости WAVE-устройств Windows?


9-7278
KoHe4Ho }|{e 6ot
2003-01-18 23:17
2003.07.03
Как перерисовывать image или canvas без мигания ?


1-7455
TsvIlya
2003-06-23 16:20
2003.07.03
Глюки с именем формы


7-7736
LexusU
2003-04-23 12:33
2003.07.03
Как можно получить текст из окна?





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