Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];

Вниз

Обработка ошибок возвращаемых СУБД 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.041 c
2-1156799757
Pierre
2006-08-29 01:15
2006.09.17
как описать событие OnTimer в таймере созданым програмно


3-1152610471
DVM
2006-07-11 13:34
2006.09.17
False/True заменить более осмысленным в DBGrid


15-1155753195
Ketmar
2006-08-16 22:33
2006.09.17
"а на седьмой день ему всё осто....о" (ц)


2-1156406173
ceval
2006-08-24 11:56
2006.09.17
Подскажите как написать процедуру


15-1156336634
fishka
2006-08-23 16:37
2006.09.17
Проблемы при работе с сетью (папка с DBF открыта для доступа)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский