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

Вниз

Обработка ошибок возвращаемых СУБД Oracle   Найти похожие ветки 

 
ASBir   (2006-07-11 12:56) [0]

Доброе время суток. Подскажите как обработть ошибки возращаемые СУБД чтобы приложение при получении той или иной ошибки выдало ее в форме понятной пользователю. Наприме "Неверный пароль" и т.п.


 
Desdechado ©   (2006-07-11 13:00) [1]

Проинталлировать сервер и клиента таким образом, чтобы ошибки возвращались на языке, понятном пользователю.

Неверный пароль - это, пожалуй, единственная ошибка, которую пользователь вообще поймет. Остальные ошибки - для программиста/админа. И поэтому лучше их выдавать в натуральном виде, а не пытаться их переводить. Ибо потом по ним можно будет судить о месте и виде ошибки, а не догадываться, что значит "упс, касяк!"


 
ASBir   (2006-07-11 13:46) [2]

и все же хочется чтобы пользователь не дергал каждый раз когда при виде ошибки... например при отсутствии подключения к серверу... было не ORA.... а простое и понятное сообщение.


 
Кщд ©   (2006-07-11 13:53) [3]

отлавливайте exception,
пишите свою обработку по ORA-NNNNN


 
ASBir   (2006-07-11 13:59) [4]


> отлавливайте exception,
> пишите свою обработку по ORA-NNNNN

все бы ни чего.. одна проблема я ни когда ранее не перехватывал ошибки... если кому не трудно кусочек кода с коментами...


 
Johnmen ©   (2006-07-11 14:00) [5]

Кусочек кода с комментариями здесь - try+F1


 
ASBir   (2006-07-11 14:02) [6]


> Кусочек кода с комментариями здесь - try+F1

это слишком просто 8-)


 
Desdechado ©   (2006-07-11 15:55) [7]

> при отсутствии подключения к серверу
Там понятным языком пользователю говорится, что оно отсутствует.


 
ASBir   (2006-07-11 16:06) [8]


> Там понятным языком пользователю говорится, что оно отсутствует

ну что вы так накинулись... не работал я раньше с ораклом конкретно и с субд вобще... потому могу и не знать некоторых нюансов...  может кто подскажет почему не обрабатываются ошибки в этом коде... где косяк?

ADOConnection1.ConnectionString:="Provider=MSDAORA.1;Password="+Passw.Text+";User ID="+User.Text+";Data Source="+Stroka.Text+";Persist Security Info=True";
 try      
 ADOConnection1.Connected:=true;    
 except    
 On e : EDataBaseError do
 begin
 if e.Message="ORA-12560: TNS:protokol adapter error." then
 ShowMessage("Мое сообщениеî");
 if e.Message="ORA-12154: TNS:could not resolve service name." then
 ShowMessage("Мое сообщение");
 if e.Message="ORA-01017: invalid username/password; logon denied." then
 ShowMessage("Мое сообщениеî");
 end;    
 end;

данный код не срабатывает... на экран выводится стандартные коды ошибок... которые перечислены в коде


 
Johnmen ©   (2006-07-11 16:07) [9]


> данный код не срабатывает... на экран выводится стандартные
> коды ошибок... которые перечислены в коде


Это потому, что под IDE пускаешь....:)


 
ASBir   (2006-07-11 16:09) [10]


> Это потому, что под IDE пускаешь....:)

???


 
ASBir   (2006-07-11 16:10) [11]

извините... с Delphi я столкнулся совсем не давно...


 
Desdechado ©   (2006-07-11 16:12) [12]

> if e.Message="ORA-12560: TNS:protokol adapter error." then
Еще раз говорю - сделай на понятном юзеру языке.
И, как следствие, твое точное сравнение может не пройти, поэтому сравнивай только ORA-XXXXX


 
Johnmen ©   (2006-07-11 16:14) [13]


> ???


Просто запусти скомпилированный exe"шник...Когда Дельфи уже непричём...


 
ASBir   (2006-07-11 16:15) [14]


>  сравнивай только ORA-XXXXX

каким образом можно сравнить только часть текста?


 
ASBir   (2006-07-11 16:16) [15]


> Просто запусти скомпилированный exe"шник...Когда Дельфи
> уже непричём..

запускал не работает... ну в смысле сообщения дает не по-русски


 
Плохиш ©   (2006-07-11 16:20) [16]


> ASBir   (11.07.06 16:15) [14]
>
> >  сравнивай только ORA-XXXXX
>
> каким образом можно сравнить только часть текста?

If Pos("xxx", "aaabbbxxxrrryyyjjj") > 0 then ...

PS. Пора книжку-какую прикупить.

> ASBir   (11.07.06 16:10) [11]
> извините... с Delphi я столкнулся совсем не давно...

Это не извинение :@ Пиши на известном тебе языке программирования.


 
ASBir   (2006-07-11 16:26) [17]


>  Пиши на известном тебе языке программирования.

в том то все и дело... что крайний раз с программированием я сталкивался в 96-м еще в школе 8-)


 
Плохиш ©   (2006-07-11 16:30) [18]


> ASBir   (11.07.06 16:26) [17]

Тогда надо нанять программиста.


 
ASBir   (2006-07-11 16:37) [19]


> Тогда надо нанять программиста.

шеф на это не пойдет


 
ASBir   (2006-07-11 17:33) [20]

народ после ADOConnection1.Connected:=true; какое событие возникает? такое ощущение что ошибка от субд выводится до того момента как она обрабатывается в выше приведенном коде


 
Virgo_Style ©   (2006-07-11 18:46) [21]

ASBir   (11.07.06 17:33) [20]

Такое ощущение, что следует перечитать [9]. Интуитивное, правда.


 
umbra ©   (2006-07-11 18:58) [22]

как написано в справке по ADOConnection.Connected, никакого исключения при неудачной попытке подключения не возникает. Просто Connected остается равно false.


 
evvcom ©   (2006-07-13 08:28) [23]

> [19] ASBir   (11.07.06 16:37)

значит ему так надо, ему пофиг эта задача. Не напрягайся, и все пройдет.


 
ASBir   (2006-07-13 08:58) [24]

спасибо за помощь.... ошибки отработал.... тепрь другая проблема вылезла.... ехе`шник на машине где я его собирал запускается.. подключается к базе и позволяет работать с данными... но при запуске на другой машине при попыте подключиться к БД выдается сообщение
"Не найден клиент Oracle и сетевые компоненты. Компоненты предоставляются корпарацией Oracle и входят в клиентское программное обеспечение Oracle версии 7.3.3 или более поздней. Невозможно использовать данного поставщика, пока не будут установлены эти компоненты."

на машине установлен клиент оракла 9i и через SQLPlus я запросто цепляюсь к БД.

Подскажите плз... в чем может быть проблема...


 
evvcom ©   (2006-07-13 09:13) [25]

Через ADO с ораклом не пробовал, не знаю где, но, возможно, неверно настроено использование OraHome в программе. Дело в том, что на машине может быть установлено несколько клиентов и программа может использовать клиента по умолчанию, а может выбрать конкретного клиента. Как это реализовано в ADO я не знаю.


 
ASBir   (2006-07-15 18:21) [26]


> Дело в том, что на машине может быть установлено несколько
> клиентов и программа может использовать клиента по умолчанию

Клиент один... установлен и настроен точно так же как и на моей машине... вплоть до путей установки



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

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

Наверх




Память: 0.53 MB
Время: 0.167 c
15-1156425313
vain
2006-08-24 17:15
2006.09.17
Структура MP3 файла


15-1156836324
dom2
2006-08-29 11:25
2006.09.17
Кто переведет...


15-1156842507
ToTo
2006-08-29 13:08
2006.09.17
Интернет поиск


15-1156332930
DonVik
2006-08-23 15:35
2006.09.17
Почему только Делфи?


15-1156128552
гастрит
2006-08-21 06:49
2006.09.17
мой скрипт