|
|
|
Выполнение хранимой процедуры на SQL сервере
|
|||
|---|---|---|---|
|
#18+
Привет! Обычный 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) Что можно сделать? Как правильно вызывать хранимую процедуру ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2008, 14:46 |
|
||
|
Выполнение хранимой процедуры на SQL сервере
|
|||
|---|---|---|---|
|
#18+
Проблема в процедуре, а не вызове. В ней видимо не хватает строки set nocount on. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2008, 15:27 |
|
||
|
Выполнение хранимой процедуры на SQL сервере
|
|||
|---|---|---|---|
|
#18+
для запуска хп лучше использовать ADODB.Command покажи сам код хп ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2008, 15:29 |
|
||
|
Выполнение хранимой процедуры на SQL сервере
|
|||
|---|---|---|---|
|
#18+
фуф, спасибо! заработало! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2008, 15:46 |
|
||
|
Выполнение хранимой процедуры на SQL сервере
|
|||
|---|---|---|---|
|
#18+
set nocount on - вот, где @ порылась! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2008, 15:46 |
|
||
|
Выполнение хранимой процедуры на SQL сервере
|
|||
|---|---|---|---|
|
#18+
SuperJurset nocount on - вот, где @ порылась!Это неверное и кривое решение. Твой код должен уметь запускать процедуры и при наличии и при отсутствии этой настройки. Читать описание на метод ADODB.Recordset.NextRecordset() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2008, 17:47 |
|
||
|
Выполнение хранимой процедуры на SQL сервере
|
|||
|---|---|---|---|
|
#18+
Чем оно кривое, позвольте полюбопытствовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2008, 20:18 |
|
||
|
Выполнение хранимой процедуры на SQL сервере
|
|||
|---|---|---|---|
|
#18+
AntonariyЧем оно кривое, позвольте полюбопытствовать.Тем что оно меняет на лету настройки сервера. Ты либо делай свою set nocount on при коннекте, либо учитывай возможность множественных резалтсетов в клиенте. Это будет правильными решениями. А менять настройки сервера внутри ХП это очень плохая идея. Сегодня ты из VB данные просишь, завтра из C++, послезавтра из isql и будешь каждый раз переправлять хранимку либо ахать "ой а куда это моя статистика подевалась?!". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2008, 20:38 |
|
||
|
Выполнение хранимой процедуры на SQL сервере
|
|||
|---|---|---|---|
|
#18+
Ну а что же мешает в конце сделать set nocount off? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2008, 09:30 |
|
||
|
Выполнение хранимой процедуры на SQL сервере
|
|||
|---|---|---|---|
|
#18+
AntonariyНу а что же мешает в конце сделать set nocount off?Выбирай на вкус: забывчивость человека написать этот самый set nocount off тот мелкий факт что писать его непосредственно перед селектом будет бессмысленно, а то что клиент не умеет обрабатывать множественные резалтсеты помешает процедуре выполнится до конца, в смысле все то что после селекта не будет отработано. возможность что хранимка упадет где-то в середине (может даже легально упадет с диагностикой о некорректных параметрах) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2008, 17:37 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=35310157&tid=2162298]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 368ms |

| 0 / 0 |
