Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.15;
Скачать: CL | DM;

Вниз

Firebird + FIBPlus - обработка ошибок подключения   Найти похожие ветки 

 
Yrtimd   (2005-11-17 00:30) [0]

// Delphi 7, FIBPlus 6.25, Firebird 1.5.2

Try
 DB.Open; // DB: TpFIBDatabase
Except
 on EFIBError do begin
   MessageDlg ("Какая-то ошибка!");
 end;
End;

Используя данный код, при ошибке подключения к БД, нельзя  установить конкретную причину (нет связи с сервером, автоизация, не найдена база данных и пр.).
Как обрабатывать ошибку, чобы выявить конкретную причину?


 
YuRock ©   (2005-11-17 10:29) [1]

В IBX делается так:

Try
DB.Open; // DB: TpFIBDatabase
Except
on E: EIBError do Err( Format( "ErrorCode: %d, SQLErrorCode: %d, Error: "%s"", [ E.IBErrorCode, E.SQLCode, E.Message ] ) );
End;


Может, поможет... В FIB не знаю.


 
Виталий Панасенко   (2005-11-17 10:38) [2]

EFIBError                  = class(EDatabaseError)
 private
   FSQLCode: Long;
   FIBErrorCode: Long;
   FSQLMessage :string;
   FIBMessage  :string;
   SenderObj :TObject;
 public
   constructor Create(ASQLCode: Long; const aMsg: String;Sender:TObject);
   constructor CreateEx(ASQLCode: Long; const IBMsg,SQLMsg: String;Sender:TObject);
   property    SQLCode    : Long read FSQLCode ;
   property    IBErrorCode: Long read FIBErrorCode ;
   property    SQLMessage :string read FSQLMessage;
   property    IBMessage  :string read FIBMessage;
 end;


 
Yrtimd   (2005-11-17 20:44) [3]

Спасибо. Но необходимо не получить описание ошибки, а дифференцировать обработчик исключения таким образом:
case E of
 сервер не найден: do ...
 база не найдена: do ...
 ошибка авторизации пользователя: do ...
end;


 
YuRock ©   (2005-11-17 22:32) [4]

Автор, читай, что тебе пишут.

EFIBError.IBErrorCode и EFIBError.SQLCode ты думаешь просто так, ради объема тебе привели в примере?


 
Yrtimd   (2005-11-18 00:10) [5]

А откуда узнать значения кодов ?..



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

Текущий архив: 2006.01.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.055 c
2-1135614059
zaN0za
2005-12-26 19:20
2006.01.15
Аналог процедуры


14-1135156839
Empleado
2005-12-21 12:20
2006.01.15
В Саранске создается цифровое телевещание


14-1134921404
Praetor
2005-12-18 18:56
2006.01.15
Воскресная задачка


2-1135263088
vale88
2005-12-22 17:51
2006.01.15
indy in delphi 2005


2-1135704433
kreyl
2005-12-27 20:27
2006.01.15
Как запустить exe-файл из-под основной программы?