![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получить текст с сообщением об ошибке.
SergP. © (2006-09-04 12:32:00)ADO, Oracle
Если при выполнении некой PL/SQL процедуры:
with TADOCommand.Create(Application) do
try
Connection:=ADConn;
CommandText:='begin ....... ; end;';
Execute;
finally
free;
end;
возникло исключение, то можно ли получить текст с соответствующим Оракловским сообщением?
SergP. (2006-09-04 17:30:00) [1]> [32] ANB © (04.09.06 17:21)
>
> > SergP. (04.09.06 17:19) [31]
>
> Вообще то хорошим подходом было бы ошибки исправить, а не
> скидывать юзеру, который их все равно не поймет :)
> Эта ошибка означает, что вставляемое значение не лезет в
> поле таблицы.
Ну во первых у каждого такого "юзера" своя база со своими ошибками, да и половина этих "юзеров" - такие же сисадмины как и я.
SergP. (2006-09-04 17:26:00) [2]> [30] ANB © (04.09.06 17:17)
>
> У нас траффик ограничен.
Хм... Жаль...
> [30] ANB © (04.09.06 17:17)
> А вместо мыла вообще лотус. Так
> что пока облом.
Ну не обязательно мыло, можно было бы и по ftp, если бы не:
> [30] ANB © (04.09.06 17:17)
>
> У нас траффик ограничен.
Ладно... С АДО проблема решена. А что касается ОДАК - может когда-нить найду что-то и переделаю...
ANB (2006-09-04 17:21:00) [3]
> SergP. (04.09.06 17:19) [31]
Вообще то хорошим подходом было бы ошибки исправить, а не скидывать юзеру, который их все равно не поймет :)
Эта ошибка означает, что вставляемое значение не лезет в поле таблицы.
SergP. (2006-09-04 17:19:00) [4]> [28] sniknik © (04.09.06 17:12)
Просто в цикле несколько раз выполняется процедура, и иногда при некоторых входных параметрах возникают подобные сообщения
> ERROR at line 1:
> ORA-01401: inserted value too large for column
> ORA-06512: at "XXXXX.XXXXXX", line 983
> ORA-06512: at line 2
вот я и хотел сделать чтобы поскладывать их в лог, чтобы юзер потом мог его просмотреть и проанализировать...
Что касается ADO, то мне [14] parovoZZ © (04.09.06 13:45) помогло...
ANB (2006-09-04 17:17:00) [5]
> Может по мылу? glukmaker@gmail.com
У нас траффик ограничен. А вместо мыла вообще лотус. Так что пока облом.
SergP. (2006-09-04 17:12:00) [6]> [27] ANB © (04.09.06 17:07)
>
> > А почему ссылка не поможет?
>
> Потому что по ней качать если и дадут, то триал. А так бы
> лично дал . . .
Может по мылу? glukmaker@gmail.com
sniknik (2006-09-04 17:12:00) [7]> Но мне нужно не просто обработать ошибку, а узнать что за ошибка...
> ну типа когда я выполняю процедуру в SQLPlus я получаю:
> ERROR at line 1:
> ORA-01401: inserted value too large for column
> ORA-06512: at "XXXXX.XXXXXX", line 983
> ORA-06512: at line 2
> Вот этот текст можно получить или нет?
что провайдер передаст то и получиш (если это ошибка а не сообщение, вот его получить проблемнее)
не знаю с ораклом, проверить не могу но от FB на неверный запрос
SELECT * FROM TABLE1
WHERE ID IS Nil
например получаю
EOleException:
Dynamic SQL Error
SQL error code = -104
Token unknown - line 2, char 13
Nil
все правильно, между прочим. наверняка и для оракла будет также, проверить ка говорил не могу, счас не оракл стоит, но могу послать для самостоятельного теста прогу на ADO.
ANB (2006-09-04 17:07:00) [8]
> А почему ссылка не поможет?
Потому что по ней качать если и дадут, то триал. А так бы лично дал . . .
SergP. (2006-09-04 17:02:00) [9]
> [24] ANB © (04.09.06 16:50)
>
> > Служил. :-)
>
> И что, неужели армия вас не научила, что это хреновый подход
> ?
> Нет, если, конечно, согласно ТЗ нужно писать на ADO+Oracle
> и заказчик/начальство никак не хочет использовать ничего
> другого - это одно. А зачем искать себе проблемы добровольно
> ?
Да нет. Заказчика нет. Пишу по собственной инициативе, чтобы облегчить жизнь себе и удаленным сотрудникам.
Да и щас я пока пишу на АДО, но стараюсь так чтобы если вдруг найду нормальные ODAC компоненты, то чтобы переделка не заняла много времени.
> [25] ANB © (04.09.06 16:51)
>
> > Если не трудно, дайте ссылку на 100% одаковский компонент.
>
> К сожалению, ссылка не поможет. Вы в москве ?
К сожалению нет... Даже не в России...
А почему ссылка не поможет?
ANB (2006-09-04 16:51:00) [10]
> Если не трудно, дайте ссылку на 100% одаковский компонент.
К сожалению, ссылка не поможет. Вы в москве ?
ANB (2006-09-04 16:50:00) [11]
> Служил. :-)
И что, неужели армия вас не научила, что это хреновый подход ?
Нет, если, конечно, согласно ТЗ нужно писать на ADO+Oracle и заказчик/начальство никак не хочет использовать ничего другого - это одно. А зачем искать себе проблемы добровольно ?
SergP. (2006-09-04 16:43:00) [12]> [22] ANB © (04.09.06 15:39)
> > SergP. (04.09.06 15:20) [21]
>
> Ты точно по одаковской TOraSession кликаешь ?
А черт ее знает... Я по поисковикам по запросу 'Компоненты Delphi прямого доступа Oracle' понаходил несколько таких компонентов, понаставлял.
Если не трудно, дайте ссылку на 100% одаковский компонент.
А то у меня есть подозрение что в инете очень много чего называется компонентами прямого доступа лишь по той причине что позволяют работать без BDE...
> Вы, часом, срочную в армии не служили ?
Служил. :-)
ANB (2006-09-04 15:39:00) [13]
> SergP. (04.09.06 15:20) [21]
Ты точно по одаковской TOraSession кликаешь ? Насколько я помню, там есть галка Net и возможность вводить хост, сид и IP. Короче, у этого компонента есть аналог строки коннекта, в которую он и кидает все, что ты написала в отдельных свойствах. Через нее можно работать, если не хочешь указывать TNS. (только нафига это нужно). Вообще, странная идея уходить с имеющихся нативных компонентов на универсальные только из-за того, что не смог подключиться напрямую.
Это называется создавать себе трудности и мужественно их преодолевать. Вы, часом, срочную в армии не служили ?
SergP. (2006-09-04 15:20:00) [14]> [20] ANB © (04.09.06 14:34)
>
> > SergP. (04.09.06 14:07) [19]
>
> Кликни два раза по TOraSession и узнаешь много интересного.
> :)
Кликнул. открылся ихний Экплорер, в котором ничего особого нет, хотя если попытаться залогиниться то предлагает ввести логин/пароль и базу, где предлагается на выбор то что у меня прописано в tnsnames.ora
ANB (2006-09-04 14:34:00) [15]
> SergP. (04.09.06 14:07) [19]
Кликни два раза по TOraSession и узнаешь много интересного. :)
SergP. (2006-09-04 14:07:00) [16]> Кто сказал, что его там нельзя указать ?
Я там такого не нашел
ANB (2006-09-04 14:04:00) [17]
> Откуда он тогда должен знать с чем я хочу работать, если
> SID , хост и порт там не указывать и tnsnames не используется?
>
Кто сказал, что его там нельзя указать ?
SergP. (2006-09-04 13:54:00) [18]> [14] parovoZZ © (04.09.06 13:45)
> Подойдёт или нет?
>
> ADOConnect.Errors.Get_Item (0).NativeError;
> ADOConnect.Errors.Item[0].Description;
Оно.
Спасибо!!!
SergP. (2006-09-04 13:51:00) [19]> [14] parovoZZ © (04.09.06 13:45)
> Подойдёт или нет?
>
> ADOConnect.Errors.Get_Item (0).NativeError;
> ADOConnect.Errors.Item[0].Description;
Щас проверим...
SergP. (2006-09-04 13:51:00) [20]> [13] ANB © (04.09.06 13:43)
>
> > находил такие компоненты для прямого доступа
>
> ОДАК позволяет работать без клиента или с клиентом, но без
> использования tnsnames.
Откуда он тогда должен знать с чем я хочу работать, если SID , хост и порт там не указывать и tnsnames не используется?