Форум: "Базы";
Текущий архив: 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