Форум: "Базы";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.013 c