Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2007, 11:51   #1
Iuliy
 
Регистрация: 21.03.2007
Сообщений: 3
По умолчанию DBE жрет оракловкие ошибки, как их выудить ?

Вот собственно проблемный текст:

oracle_connection : TDatabase
log,passwd : String
{.........}
Oracle_connection.Params.Add(passwd );
Oracle_connection.Params.Add(log);
try
oracle_connection.Connected:=true;
{ действия }
except
on E0 : Exception do
begin
ShowMessage(E0.ClassName+' exception '+E0.Message);
end;
end;
{........}

Значения пароля и логина беру из формы. При неправильных значениях получаю всегда одинаковую ошибку. При правильных данных програма работает как и задумано. Но Оракл выдает 3 разных ошибки: неверный пароль, нет учетной записи, устаревший пароль, а я всегда получаю одинаковый результат
Изображения
Тип файла: bmp error.bmp (14.6 Кб, 150 просмотров)
Iuliy вне форума Ответить с цитированием
Старый 21.03.2007, 13:26   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А если так:
...
except
on E: EDBEngineError do
ShowError(E);
end;
...

Кроме того, может быть несколько ошибок сразу, "наложенных" друг на друга.
Попробуйте вот эту процедуру:

procedure TForm.Show_BDE_Error(BDEExc: EDBEngineError);
var i: Integer;
begin
Memo1.Lines.Clear;
Memo1.Lines.Add('Всего ошибок: ' + IntToStr(BDEExc.ErrorCount));
Memo1.Lines.Add('');
for i := 0 to BDEExc.ErrorCount - 1 do
begin
Memo1.Lines.Add('Сообщение об ошибке: ' + BDEExc.Errors[i].Message);
Memo1.Lines.Add(' Категория ошибки: ' +
IntToStr(BDEExc.Errors[i].Category));
Memo1.Lines.Add(' Код ошибки: ' +
IntToStr(BDEExc.Errors[i].ErrorCode));
Memo1.Lines.Add(' Субкод: ' +
IntTooStr(BDEExc.Errors[i].SubCode));
Memo1.Lines.Add(' "Родная" (реальная) ошибка: ' +
IntToStr(BDEExc.Errors[i].NativeError));
Memo1.Lines.Add('');
end;
end;
mihali4 вне форума Ответить с цитированием
Старый 21.03.2007, 13:44   #3
Iuliy
 
Регистрация: 21.03.2007
Сообщений: 3
По умолчанию

Код HTML:
except
on E: EDBEngineError do
ShowError(E);
end; 
[Error] Unit1.pas(134): Undeclared identifier: 'ShowError'
Цитата:
procedure TForm.Show_BDE_Error(BDEExc: EDBEngineError);
var i: Integer;
begin
Memo1.Lines.Clear;
Memo1.Lines.Add('Всего ошибок: ' + IntToStr(BDEExc.ErrorCount));
Memo1.Lines.Add('');
for i := 0 to BDEExc.ErrorCount - 1 do
begin
Memo1.Lines.Add('Сообщение об ошибке: ' + BDEExc.Errors[i].Message);
Memo1.Lines.Add(' Категория ошибки: ' +
IntToStr(BDEExc.Errors[i].Category));
Memo1.Lines.Add(' Код ошибки: ' +
IntToStr(BDEExc.Errors[i].ErrorCode));
Memo1.Lines.Add(' Субкод: ' +
IntTooStr(BDEExc.Errors[i].SubCode));
Memo1.Lines.Add(' "Родная" (реальная) ошибка: ' +
IntToStr(BDEExc.Errors[i].NativeError));
Memo1.Lines.Add('');
end;
end;
Ничего не дает, в обоих случаях: и при неверном, и при устареввшем пароле тексты совпадают.
Спасибо за помощь.
Iuliy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Две ошибки Crivel Помощь студентам 10 31.07.2008 12:18
Ловить все ошибки Иллидан Общие вопросы C/C++ 11 19.05.2008 20:58
Ошибки delphin100 Операционные системы общие вопросы 12 17.04.2008 14:15
Ошибки Terran Общие вопросы Delphi 3 05.02.2008 20:47
Какое-то приложение жрет трафик пыхта4ог Свободное общение 22 13.11.2007 15:12