![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Исключительная ситуация при запросе к MySQL [D7, MySQL]
nkrainev © (2003-02-13 17:40:00)Здравствуйте, мастера!
У меня проблема с исключительными ситуациями.
Когда ввожу такой код для пробы:
try
x:=1 / 0;
except
on E: EZeroDivide do begin
e.Message:="Bad";
raise; end;
end;
...никакой ошибки не выводит, что странно (тоже если не сложно объясните), а когда по делу:
try
ZBatchsql1.ExecSql; //Выполняет запрос MySQL
except
on e: EDatabaseError do
begin
e.Message:="Bad";
Showmessage("Плохо дело!");
ZBatchsql1.Sql.Clear;
end;
end;
как я ни стараюсь, пишет свое, а именно "Дублированная запись итд итп"
Как убрать эту ошибку при возникновении, а то ведь вся программа падает,
при этом обработать ее и выдать сообщение, что запись в MySQL уже есть?
_______
Николай
nkrainev (2003-02-13 19:31:00) [1]вопрос не о x=1/0, а об INSERT.
у меня дамп старой базы, а в новой есть дублирующие. Мне нужно сделать обработчик дублирования, чтобы он не завершал работу программы, а все остальные запросы отработал, а потом указал, сколько дубликатов было и если нужно какие.
Проверять,есть ли текущая вставляемая запись - слишком муторно, поэтому прошу вашего, мастера кода, совета - как это сделать без проверки, через обработчик искл. ситуаций (или может еще как-нибудь).
jocko (2003-02-13 18:31:00) [2]а ты попробуй возьми логарифм ln(integer(0))... хе-хе
так крепче
Anatoly Podgoretsky (2003-02-13 18:13:00) [3]Не важно будет выкинуто или нет, но это не runtime error
Johnmen (2003-02-13 17:58:00) [4]Компилятор оптимизирующий, x:=1 / 0 будет выкинуто...
jocko (2003-02-13 17:46:00) [5]ну насчет Х после деления то просто посмотри чему он равен и будь в курсе... (что написал то и получил, с учетом машинного восприятия)
а по второму вопросу ну наверно действительно дублированная запись - надо просто ее найти и убедиться, ты там что вставку делаешь?