Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Объясните как работают raiseerror и severity
|
|||
|---|---|---|---|
|
#18+
К меня проблема с тем что ODBC драйвер не выводит месаги от raserror. Сервер ASE 12.5. Есть тупая сп. Упрощенно: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. В SQL Advantage вызываю сп. c такими параметрами чтобы не прошел инсерт. и получаю Server Message: Number 3621, Severity 10 Server 'SYBASEN20', Procedure 'phone_add_land_line', Line 18: Command has been aborted. Server Message: Number 2601, Severity 14 Server 'SYBASEN20', Procedure 'phone_add_land_line', Line 18: Attempt to insert duplicate key row in object 'PHONE_LINES' with unique index 'full_ak' Server Message: Number 99999, Severity 16 Server 'SYBASEN20', Procedure 'phone_add_land_line', Line 39: Unable add land line. (return status = -4) Что и есть ожидаемый результат. Теперь делаю тоже через ADO и ODBC драйвер или OLE Db Provider: получаю только [quot] [...]Attempt to insert duplicate key row in object 'PHONE_LINES' with unique index 'full_ak' [...]Command has been aborted. [quot] Куда же делся мой месаг? И почему порядок инвертирован? В других случаях при использовании ODBC просто выводится "Unspecified error." Если через OLE DB то работает корректно. По крайней мере не глотает сообщения от raiserror. Я уже порядком задолбался с Sybase ODBC драйвером. Он что сильно глючный? Как вывести несколько статусных сообщений или сообщений об ошибке? Работа из ASP через ADO и ОБЯЗАТЕЛЬНО ODBC драйвер. ODBC требование клиента... :-( Еще хотелось бы узнать что за return status -4 показывает SQL Advantage? Такое впечаление что его устанавливет при попытке инсерта. Но почему он не перекрывается после raiseerror? И вообще отрицательное значение выглядит странно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 21:38 |
|
||
|
Объясните как работают raiseerror и severity
|
|||
|---|---|---|---|
|
#18+
Про статус -4 уже нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 21:52 |
|
||
|
Объясните как работают raiseerror и severity
|
|||
|---|---|---|---|
|
#18+
Mike EvteevТеперь делаю тоже через ADO и ODBC драйвер или OLE Db Provider: получаю только А КАК ты делаешь? Вот я через ODBC делаю так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 22:39 |
|
||
|
Объясните как работают raiseerror и severity
|
|||
|---|---|---|---|
|
#18+
Да... У меня все проще и не так прозрачно. Что я могу сделать в ASP? Да практически ничего... Я уже скатился до самого простого. Все равно не работает. (Про более сложное пока молчу вообще...) В сп пишется raiseerror 99999 'bla-bla-bla'. Те. там больше вообще ничего нет! Одна команда. В ASP скрипте. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Вот там где Cmd.Execute как я понимаю должно ругнуться. Ан нет! Ничего не происходит! Если с OLE DB Provider то все как по маслу... Был написан прототип аппликухи. Он работал через OLE DB. И вот сегодя меня осчастливили - оказывается на продакшн сервере используется только ODBC драйвер. Наверное, можно найти какие-то обходные пути, но это чревато серьезным переписыванием. Да и понять хотелось бы что делается не так. Не может же быть чтобы драйвер был такой кривой. Кстати Sybase ASE ODBC driver 04.10.0066. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 23:06 |
|
||
|
Объясните как работают raiseerror и severity
|
|||
|---|---|---|---|
|
#18+
Mike EvteevВот там где Cmd.Execute как я понимаю должно ругнуться. Ан нет! Ничего не происходит! Если с OLE DB Provider то все как по маслу... И почему ты считаешь что там что-то должно ругнуться? Где код проверяющий как ругается? И вообще, при чем здесь ODBC если ты работаешь с ADO? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 23:38 |
|
||
|
Объясните как работают raiseerror и severity
|
|||
|---|---|---|---|
|
#18+
у ASE ODBC драйвер - ОЧЕНЬ КРИВОЙ!!!! Качайте и ставьте клиентские EBF. Хотел посоветовать вам почитать новостную группу по ODBC, но вы ее уже нашли (судя по последнему посту в ней). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 23:45 |
|
||
|
Объясните как работают raiseerror и severity
|
|||
|---|---|---|---|
|
#18+
Мля... Как не весело... А что такое EBF? Только что попробовал через Intersolv Sybase драйвер. Все отработало как и на провайдере. Там где было "Unspecified Error" вывелись мои сообщения. Осталось только одно место вызывающее подозрение. То что описано в первом посте. Есть табличка. В нее делается инсерт (с нарушением констрайнта), потом делается @@error чек и должно выводиться сообщение которое бы не пугало пользователя. Так оно не выводится... А выводится стандартное о дупликате. Если в SQL Advantage - все ОB. Как это понимать? Похоже драйвер что-то делает с сообщениями. Я в ODBC не спец, может там есть что в спеках, о приоритетности сообщений, или что-нибудь в этом роде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 00:07 |
|
||
|
Объясните как работают raiseerror и severity
|
|||
|---|---|---|---|
|
#18+
Mike Evteev А что такое EBF? заплатка, сервис пук и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 09:14 |
|
||
|
Объясните как работают raiseerror и severity
|
|||
|---|---|---|---|
|
#18+
На форуме Sybase ответили что это баг. Драйвер нужно апгрейдить и в коннекшн стринг прописывать спецуальные параметры. 345869: ODBC: Raiserror was always returning as SQL_SUCCESS_WITH_INFO in stored procedure call. To provide flexibility a new connection property has been added: SybaseWorkArounds. The following details provide the information on the option: Connection String name for SybaseWorkArounds Long Name: SybaseWorkArounds Short Name: SWA Possible Values of SybaseWorkArounds for RaiseError: 0 RaiseError as Warning, the default 1 RaiseError as Error Может кому пригодится. Я конечно понимаю доводы своего манагера о том что мы не можем так просто проапгрейдить драйвер, потому что придется все заново тестировать. Но, мне кажется что это как раз тот случай когда это нужно сделать незамедлительно... Ни хрена себе фича! Клиент не получает сообщений об ошибке! Ненавижу бюрократию... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 16:49 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=33391389&tid=2013242]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 251ms |
| total: | 400ms |

| 0 / 0 |
