У меня есть приложение, связанное с базой данных.
Подключено с использованием компонентов BDE и базы данных MySQL.Delphi найти конкретную причину для исключения
Теперь я делаю некоторые проверки для проверки того, выполняется ли повторяющаяся запись при выполнении инструкции insert.
Ниже приведен код для проверки дублирующей записи для атрибута первичного ключа.
var
error :string;
cmpres:integer;
begin
...
/* all my data queries */
try
Query1.ExecSQL;
Except
on E: Exception do
/*check if its a Duplicate entry or other exception*/
begin
error := E.Message;
error := copy(error,length(error)-16,length(error)-2);
cmpres :=CompareStr(LowerCase(error),'for key '+#39+'primary'+#39) ;
if cmpres = 0 then
MessageDlg('Entry already exist',mtError,[mbok],0)
else
MessageDlg('Invalid Data Entries',mtError,[mbok],0);
exit;
end;
end;
end;
Исключение базы данных широко помещено внутрь EDatabaseError
Может кто-нибудь сказать мне, есть ли способ, я могу различать эти ошибки, не делая сравнения сообщений.
Заранее спасибо
Что говорит вам отладчик? –
@DavidHeffernan Отладчик дает мне это сообщение об ошибке 'ошибка 'Нарушение ключа.' # $ D # $ A '[MySQL] [ODBC 5.1 Driver] [mysqld-5.5.11] Дублирующая запись' '64' 'для ключа' ' PRIMARY '' '' ' – Shirish11
Нет, я имею в виду, что ** класс ** является ошибкой и какие свойства предлагает этот класс. –