Для чего необходимо включать SET NOCOUNT ON в ХП?
Желательно пример.
ХП и SET NOCOUNT ON
Модератор: Andrew™
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Re: ХП и SET NOCOUNT ON
не забивай себе голову, в любой ХП в начале врубай и всёStillZero писал(а):Для чего необходимо включать SET NOCOUNT ON в ХП?
Желательно пример.
в ХП ты можешь получать несколько результатов если юзается OFFAdmin писал(а):А если в двух словах аргументировать применение?
P.S. В хелпе не совсем понятно ...
НО есть ограничение на количество таких резулттатов и ежели превысить его то без всякой ошибки произойдёт откат выполнения ХП что плохо
SQLMoreResults используется если в запросе возвращается несколько
результатов(Например в одном SQL запросе 2 или более самостоятельных
SELECT). Эта функция закрывает очередной результат и переходит к следующему
набору данных.
Есть нюанс с так называемыми "ROWS affected".
Так при использовании ODBC2 в набор результата это сообщение не попадает, а
вот в ODBC3 попадает.
Например, ты вызываешь ХП, а в ней забыл поставить SET NOCOUNT ON.
В этой ХП ты выполняешь SELECT, UPDATE, INSERT(например во временную
таблицу), а потом даешь основной SELECT, результат которого и будешь читать
в программе. Так вот в ODBC3 ты получишь несколько наборов результата. А
тебе то нужен только последний. Для этого и нужно использовать
SQLMoreResults.
кстати для инфо, если есть ХП, а вней производятся какие то действия по сбору информации во временную таблицу которая тут же и создаётся, а в конце стоит
библиотека нормально отрюхает и на клиента попадёт именно выборка по SELECtу
Код: Выделить всё
select .... from #myTempTable
drop table #myTempTable