Главная страница
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.041 c
6-1126517088
Victor!
2005-09-12 13:24
2006.01.15
TClientSocket через проксю


6-1127751490
ILN
2005-09-26 20:18
2006.01.15
Webbrowser в связке с сокетами, контролируем броузера


2-1135251950
Nurbolat
2005-12-22 14:45
2006.01.15
Как в моей программе открыть файл базы данных Access?


14-1135249941
ilya39
2005-12-22 14:12
2006.01.15
Отладка в VS.Net 2003


14-1134850690
Санёк
2005-12-17 23:18
2006.01.15
На чем написана аська?