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

Вниз

обрабатывать код ошибки сервера FB   Найти похожие ветки 

 
andreoman   (2007-11-13 16:42) [0]

Здравствуйте. Использую Firebird_1.5.3. При выполнении некоего запроси при помощи TIBQuery хочу обрабатывать код ошибки сервера. Т.е. получать код ошибки чтоб реагировать на нее и выводить сообщение пользователю на русском языке.
Например как программно узнать код ошибки "violation of PRlМARY or UNIQUE
КЕУ constraint..." (-803) ?
try
   with IBQuery1 do
   begin
     Transaction.StartTransaction;    
     if Active then Close;
     SQL.Clear();
     SQL.Text := sqlAddPlata;
     ParamByName("id").AsInteger:=listid;      
     ExecSQL;
     Transaction.Commit;
   end;
except
   on E:exception do
   begin
     dmManager.qryWrite.Transaction.Rollback;
     Windows.MessageBox(Self.Handle, PChar(E.Message),
   end;    
end;
Зарание спасибо!


 
Desdechado ©   (2007-11-13 17:35) [1]

Не нужно делать так. Показывай оригинальные сообщения, иначе при ошибках не разберешься, что не так работает.
А заставить сервер ругаться по-русски можно изменением firebird.msg
Можно взять готовый с ibase.ru, а можно самому с помощью IBExpert.


 
andreoman   (2007-11-13 17:53) [2]

ну а все-таки ответ на вопрос, как узнать код ошибки ?


 
andreoman   (2007-11-13 18:30) [3]

Дело в том, что у меня есть уникальное поле и при добавлении записи я не хочу делать лишнюю проверку есть ли уже такое значение поля, а исходя из кода ошибки сервера (-803) генерировать сообщение "Такое значение уже есть!"


 
atruhin ©   (2007-11-14 16:01) [4]

> Не нужно делать так. Показывай оригинальные сообщения, иначе
> при ошибках не разберешься, что не так работает.

Вот не надо, потом звонят по телефону и говорят: "Программа выдала ошибку,
но прочитать я не могу."
Поэтому например у нас при возникновении ошибки пользователь получает сообщение:
"Системная ошибка. Код NNN. Обратитесь в техподдержку". Для более грамотных,
есть кнока подробнее, которая показывает исходную ошибку, ну конечно все ошибки в лог.
Автору:
 try
   qrUpdate.ExecWP([fID]);
   trUpdate.Commit;
 except
   on E:EFIBError do
     if E.IBErrorCode = 335544466 then begin // foregin key
       qrSQL.Close;
       qrSQL.SQL.Text := "select first 5 IDMASTER, NAME from S_FINDOBJECTLINK(:ID)";
       qrSQL.ExecWP([fID]);
       while not qrSQL.Eof do begin
         S := S + qrSQL.FN("NAME").AsString + #13#10;
         qrSQL.Next;
       end;
       S := "Ia iauaeo eia?ony nnueee oaaeyou iaeucy!"#13#10 + S;
       MessageBox(0, PChar(S), "Oaaeaiea", MB_ICONERROR or MB_OK);
     end else raise;
   else raise;
 end;


 
Anatoly Podgoretsky ©   (2007-11-14 16:27) [5]

> atruhin  (14.11.2007 16:01:04)  [4]

Ну, ну - не передергивай карты, речь шла о другого рода сообщения, типа "Не удалось открыть файл"


 
Desdechado ©   (2007-11-14 18:33) [6]

> Программа выдала ошибку,но прочитать я не могу
Нехай шлет скриншот или текст ошибки копи-пастом.
Или перевод сделай для MSG-файла, как написано выше.


 
Германн ©   (2007-11-14 18:46) [7]

Или ещё лучше купить EurekaLog. Будете получать письмо от пользователя с массой полезной информации об ошибке.
http://www.eurekalog.com



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

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

Наверх




Память: 0.46 MB
Время: 0.006 c
15-1203744981
Dmitry S
2008-02-23 08:36
2008.04.06
Имитация файла.


15-1203580855
Ega23
2008-02-21 11:00
2008.04.06
А Delphi для PHP кто-нибудь уже использовал?


2-1205147901
Dmitriy
2008-03-10 14:18
2008.04.06
Режим только_чтение/редактирование для компонентов


15-1203804569
Kostafey
2008-02-24 01:09
2008.04.06
С днем рождения ! 24 февраля


2-1205315387
Ega23
2008-03-12 12:49
2008.04.06
Нахождение первого символа из множества в строке





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