|
|
|
SQL Server <---> ADO
|
|||
|---|---|---|---|
|
#18+
Такая проблема. 1. На SQL Server 2000 есть процедурка, например: Код: plaintext 1. 2. 3. 4. 5. 6. 2. Подключаемся к серверу через ADO и запускаем эту процедуру, например, JScript: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Проблема в том, что ошибка, которую должна вернуть процедура, на клиент не возвращается. Если же закомментировать select, то ошибка возвращается, но только первая, вторая же не возвращается. Может кто-нибудь объяснит в чем здесь траблы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 20:25:44 |
|
||
|
SQL Server <---> ADO
|
|||
|---|---|---|---|
|
#18+
"Траблы" в OLE_DB провайдере для MSSQL. Используйте OLE_DB провайдер для ODBC и у Вас такого не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 21:59:07 |
|
||
|
SQL Server <---> ADO
|
|||
|---|---|---|---|
|
#18+
пускаем в QA: select 'error' as errors raiserror('Сушите весла!', 16, 2) raiserror('Cейчас cлонов буду раздавать!!!', 16, 2) получаем: (1 row(s) affected) Server: Msg 50000, Level 16, State 2, Line 2 Сушите весла! Server: Msg 50000, Level 16, State 2, Line 3 Cейчас cлонов буду раздавать!!! пускаем: raiserror('Сушите весла!', 16, 2) raiserror('Cейчас cлонов буду раздавать!!!', 16, 2) получаем: Server: Msg 50000, Level 16, State 2, Line 1 Сушите весла! Server: Msg 50000, Level 16, State 2, Line 2 Cейчас cлонов буду раздавать!!! Сдается мне, нужно поковырять - как достать не только первый месседж от SQL. Возможно, каждый возвращается в отдельном рекордсете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 22:54:14 |
|
||
|
SQL Server <---> ADO
|
|||
|---|---|---|---|
|
#18+
Почитай в документации по ADO о колекции ошибок и посмотри примеры её использования. В ней копятся все ошибки и сообщения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 04:12:14 |
|
||
|
SQL Server <---> ADO
|
|||
|---|---|---|---|
|
#18+
> Sparrrow: да в документации так и сказано, даже пример приведен, но там все для одной ошибки и то которая не внутри SP происходит > Jimmy Boy: что уж я только не ковырял, а из-за того-что ошибки не возвращаются на клиент - все плохо работает :( > Александр Спелицин: если сделать так, то действительно будет работать Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Но тогда уместен вопрос, а почему через родной OLEDB провайдер для MSSQL не работает??? И еще: ODBC API does not support explicit transactions, only autocommit and implicit transactions ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 09:51:14 |
|
||
|
SQL Server <---> ADO
|
|||
|---|---|---|---|
|
#18+
А где SET NOCOUNT ON в процедуре? Я не вижу. "Откройте мне веки" (С) Гоголь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 10:13:40 |
|
||
|
SQL Server <---> ADO
|
|||
|---|---|---|---|
|
#18+
Хотя это не поможет в данном случае. Просто ADO из всего output считывает первый набор данных и на этом считает свою миссию выполненной. Чтобы наткнуться на первую ошибку, надо сделать NextRecordset. А до второй дело так и не дойдет, потому что на первой ошибке генерится исключение клиентом и считывание output прекращается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 10:18:40 |
|
||
|
SQL Server <---> ADO
|
|||
|---|---|---|---|
|
#18+
>Dankov: причем здесь SET NOCOUNT ON я не понял??? Но я на всякий случай проверил - все равно не работает :( >Александр Спелицин: кстати, все ошибки возвращаются при использовании OLEDB провайдер для ODBC только в случае если перед этим не было Select :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 10:24:38 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32073233&tid=1818456]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
93ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 419ms |

| 0 / 0 |
