![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
коллекция TAdoConnection.Errors [D7, MSSQL]
zubov © (2004-03-25 15:03:00)Возник тут специфический вопрос. Есть у меня процедура не возвращающая резалтсета, а все результаты работы выводятся с помощью PRINT. Хотел поймать их из своего приложения но столкнулся со следющей проблемой, почему-то всегда Errors.Count = 1, т.е ловится только первый PRINT, а остальные напрочь игнорируются.
Есть идеи почему так происходит?
KSergey (2004-03-25 18:38:00) [1]Нужен обязательно серверный курсор.
А примеры на формуме точн были, правда - сравнительно давно.
Есть желание - пиши на почту, попробую найти. но сначала проверь: серверный курсор!
Ega23 (2004-03-25 18:16:00) [2]Тебе бороться с причиной или следствием надо?
Я не слышал, чтобы можно было за раз в один набор данных получить несколько резалтсетов.
zubov (2004-03-25 18:13:00) [3]Ну если уж извращаться то я могу и в виртуальную табличку что мне надо собрать а потом вернуть резалтсет, но это чистой воды "удаление аппендикса через одно место" :)
Ведь может же QA показывать эти сообщения, почему же я не могу? :)
Кто-то может сказать что QA работает не через АДО, логично, но я своими глазами видел утилиту которая работала также как и QA. :(
Ega23 (2004-03-25 16:39:00) [4]Сами сообщения? Ну и копи их в строку
Set NoCount ON
declare @ResString varchar(8000)
Set @ResString=''
твоя процедура
-- Первый print
if @Debug Print('Тра-ля-ля') else Set @ResString=@ResString+' ' + 'Тра-ля-ля'
.....
-- N-ый Print
.....
Set NoCount OFF
Select ResString=@ResString
zubov (2004-03-25 16:32:00) [5]Процедура типа
PRINT '1'
PRINT '2'
PRINT '3'
так вот в Error.count = 1 и соответственно вижу только '1'
У вас какие версии дельфи? У меня D7 без апдейтов.
To : Ega23 ты говоришь о резалтсетах, т.е SELECT возвращает именно резалтсет, а мне нужны PRINT сообщения из sp
sniknik (2004-03-25 15:17:00) [6]странно, а у меня все получаются,что в пакете записал 5 значит 5 и т.д.
Есть идеи почему так происходит?
Ega23 (2004-03-25 15:09:00) [7]Set NoCount ON
declare @ErrCount int
твоя процедура
Select @ErrCount=@@RowCount
Set NoCount OFF
Select ErrCount=@ErrCount
А Delphi и будет только первый результат получать. Дальше считается, что всё закончилось.