|
|
|
Получить на клиенте все ошибки из ХП
|
|||
|---|---|---|---|
|
#18+
Такой вопрос неоднакратно поднимался, но в данном случае несовсем стандартная ситуация. На клиент приходит только первая ошибка. Следующий код : ======================== create Procedure Test2 as set nocount on declare @msg varchar(100) set @msg = 'xxx' + char(10) + 'yyy' raiserror(@msg, 16, 1) return go create Procedure Test as set nocount on select 1 sid into #t union select 2 union select 3 declare @sid int DECLARE curs CURSOR LOCAL FORWARD_ONLY READ_ONLY FOR select sid from #t OPEN curs FETCH NEXT FROM curs INTO @sid WHILE @@fetch_status = 0 begin exec Test2 FETCH NEXT FROM curs INTO @sid end close curs deallocate curs ============================== соответственно на клиенте стандартная обработка: SQL = "exec Test" .RSExec SQL strError = "" For Each tError In .vCONNECT.Errors strError = strError & tError.Description & Chr(13) & Chr(10) Next If strError <> "" Then MsgBox strError, 16, "Error" ... Если убрать курсор, заменив его скажем на цикл, то все ОК. Курсор же "убивает" все напрочь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2006, 12:43 |
|
||
|
Получить на клиенте все ошибки из ХП
|
|||
|---|---|---|---|
|
#18+
Суть в том, что у вас происходит несколько выборок, и поэтому надо использовать метод NextRecordset, чтобы получить ошибки, произошедшие во всех выборках. Я тоже год назад с этим столкнулся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2006, 13:15 |
|
||
|
Получить на клиенте все ошибки из ХП
|
|||
|---|---|---|---|
|
#18+
MelkiadesСуть в том, что у вас происходит несколько выборок, и поэтому надо использовать метод NextRecordset, чтобы получить ошибки, произошедшие во всех выборках. Я тоже год назад с этим столкнулся. Про это я как бы знаю, но здесь несколько не тот случай. Выборок то нет вообще никаких. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2006, 13:37 |
|
||
|
Получить на клиенте все ошибки из ХП
|
|||
|---|---|---|---|
|
#18+
Ivan V MelkiadesСуть в том, что у вас происходит несколько выборок, и поэтому надо использовать метод NextRecordset, чтобы получить ошибки, произошедшие во всех выборках. Я тоже год назад с этим столкнулся. Про это я как бы знаю, но здесь несколько не тот случай. Выборок то нет вообще никаких. Так вы полностью уверены, что NextRecordset is Nothing? Проверяли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2006, 14:08 |
|
||
|
Получить на клиенте все ошибки из ХП
|
|||
|---|---|---|---|
|
#18+
Да более того, пример можно упростить до безобразия: ==== create Procedure Test as set nocount on select 1 sid into #t union select 2 union select 3 declare @sid int DECLARE curs CURSOR LOCAL FAST_FORWARD FOR select sid from #t OPEN curs FETCH NEXT FROM curs INTO @sid WHILE @@fetch_status = 0 begin raiserror('xxx', 16, 1) FETCH NEXT FROM curs INTO @sid end close curs deallocate curs ==== а результат тот же. Никакой выборки здесь днем с огнем не сыскать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2006, 14:34 |
|
||
|
Получить на клиенте все ошибки из ХП
|
|||
|---|---|---|---|
|
#18+
У меня все работает... что я не так делаю? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2006, 15:10 |
|
||
|
Получить на клиенте все ошибки из ХП
|
|||
|---|---|---|---|
|
#18+
И что выдает в мессаге? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2006, 16:50 |
|
||
|
Получить на клиенте все ошибки из ХП
|
|||
|---|---|---|---|
|
#18+
Проделал, только на скрипте, бейсика у меня нет, думаю, что принципиальной разницы нет. Выдает одну "xxx", а нужно три. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2006, 17:06 |
|
||
|
Получить на клиенте все ошибки из ХП
|
|||
|---|---|---|---|
|
#18+
Вот заметил, а что это за провайдер Provider=MSDASQL.1 Я использую стандартный Microsoft OLE DB Provider for SQL Server, кратко SQLOLEDB.1 может из-за него работает по разному ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2006, 17:12 |
|
||
|
Получить на клиенте все ошибки из ХП
|
|||
|---|---|---|---|
|
#18+
Проверил, действительно через SQLOLEDB.1 выдает один мессадж, а через MSDASQL.1 - три. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2006, 17:26 |
|
||
|
Получить на клиенте все ошибки из ХП
|
|||
|---|---|---|---|
|
#18+
Возможно появились новые идеи по сабж.? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 11:40 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=33522313&tid=2165252]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 261ms |
| total: | 405ms |

| 0 / 0 |
