powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Выполнение хранимой процедуры на SQL сервере
11 сообщений из 11, страница 1 из 1
Выполнение хранимой процедуры на SQL сервере
    #35309115
SuperJur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

Обычный select нормально отрабатывается

Set conn = New ADODB.Connection
conn.Open "..."
Set R = conn.Execute("SELECT CODE FROM ft22.DBO.rt ORDER BY CODE")

а вызов хранимой процедуры не возвращает открытый набор данных:

Set R = conn.Execute("oper0009('20080401', '20080501', '12', 2000)", adCmdStoredProc)
или
Set R = conn.Execute("exec oper0009 '20080401', '20080501', '12', 2000", adCmdStoredProc)

Что можно сделать? Как правильно вызывать хранимую процедуру ?
...
Рейтинг: 0 / 0
Выполнение хранимой процедуры на SQL сервере
    #35309307
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в процедуре, а не вызове. В ней видимо не хватает строки set nocount on.
...
Рейтинг: 0 / 0
Выполнение хранимой процедуры на SQL сервере
    #35309318
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
для запуска хп лучше использовать ADODB.Command
покажи сам код хп
...
Рейтинг: 0 / 0
Выполнение хранимой процедуры на SQL сервере
    #35309405
SuperJur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фуф, спасибо! заработало!
...
Рейтинг: 0 / 0
Выполнение хранимой процедуры на SQL сервере
    #35309408
SuperJur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
set nocount on - вот, где @ порылась!
...
Рейтинг: 0 / 0
Выполнение хранимой процедуры на SQL сервере
    #35309858
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SuperJurset nocount on - вот, где @ порылась!Это неверное и кривое решение.
Твой код должен уметь запускать процедуры и при наличии и при отсутствии этой настройки.
Читать описание на метод ADODB.Recordset.NextRecordset()
...
Рейтинг: 0 / 0
Выполнение хранимой процедуры на SQL сервере
    #35310132
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем оно кривое, позвольте полюбопытствовать.
...
Рейтинг: 0 / 0
Выполнение хранимой процедуры на SQL сервере
    #35310157
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЧем оно кривое, позвольте полюбопытствовать.Тем что оно меняет на лету настройки сервера.
Ты либо делай свою set nocount on при коннекте, либо учитывай возможность множественных резалтсетов в клиенте. Это будет правильными решениями.
А менять настройки сервера внутри ХП это очень плохая идея. Сегодня ты из VB данные просишь, завтра из C++, послезавтра из isql и будешь каждый раз переправлять хранимку либо ахать "ой а куда это моя статистика подевалась?!".
...
Рейтинг: 0 / 0
Выполнение хранимой процедуры на SQL сервере
    #35310632
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а что же мешает в конце сделать set nocount off?
...
Рейтинг: 0 / 0
Выполнение хранимой процедуры на SQL сервере
    #35312586
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyНу а что же мешает в конце сделать set nocount off?Выбирай на вкус:
забывчивость человека написать этот самый set nocount off

тот мелкий факт что писать его непосредственно перед селектом будет бессмысленно, а то что клиент не умеет обрабатывать множественные резалтсеты помешает процедуре выполнится до конца, в смысле все то что после селекта не будет отработано.

возможность что хранимка упадет где-то в середине (может даже легально упадет с диагностикой о некорректных параметрах)
...
Рейтинг: 0 / 0
Выполнение хранимой процедуры на SQL сервере
    #35314587
SuperJur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо! Сделал conn.Execute ("SET NOCOUNT ON") на стороне клиента.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Выполнение хранимой процедуры на SQL сервере
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]