Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

коллекция 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 и будет только первый результат получать. Дальше считается, что всё закончилось.


Наверх

Титульная страница Поиск, карта сайта Написать письмо