powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Возврат из ХП recordset и output value
3 сообщений из 3, страница 1 из 1
Возврат из ХП recordset и output value
    #37133390
KamskyPaul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как из хранимой процедуры MS SQL получить и Recordset, и OUTPUT параметр?
Есть ХП MS SQL (2000):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE PROCEDURE sp_GetDispReport(
   @d DATETIME,
   @Gpa_Work varchar( 50 ) OUTPUT,
   @DT_Curr  varchar( 50 ) OUTPUT
)
AS 

SET NOCOUNT ON
DECLARE @D1 DATETIME
DECLARE @D2 DATETIME
DECLARE @H INTEGER
SET @Gpa_Work = "ГПА1" --например
....
-- Выдать результат
SELECT *  FROM #TMP  ORDER BY ORDERNUM ASC
--удалить временную таблицу
DROP table #tmp
GO
и вызов ее в VBA (Excel):
....
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Dim rst As ADODB.Recordset
Dim cmd As ADODB.Command

Set cmd = New ADODB.Command
cmd.ActiveConnection = cnn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "sp_GetDispReport"
cmd.NamedParameters = True
Set prm = cmd.CreateParameter("@d", adDBTimeStamp, adParamInput, , d)
cmd.Parameters.Append prm

Set prm = cmd.CreateParameter("@Gpa_Work", adVarChar, adParamOutput,  50 )
cmd.Parameters.Append prm

Set prm = cmd.CreateParameter("@DT_Curr", adVarChar, adParamOutput,  50 )
cmd.Parameters.Append prm


Set rst = cmd.Execute    ' открываем Recordset
Do While Not rst.EOF
....
С rst - все хорошо, данные есть. В выходных же cmd.Parameters(...).Value - Empty.
Пробовал и так:
Код: plaintext
1.
2.
3.
cmd.Parameters.Refresh
cmd.Parameters("@d") = d
cmd.Parameters("@Gpa_Work").Direction = adParamOtput
cmd.Parameters("@DT_Curr").Direction = adParamOutput
Результат тот же..В чем может быть проблема?
...
Рейтинг: 0 / 0
Возврат из ХП recordset и output value
    #37133410
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Set rst = cmd.Execute  

заменить на это:


Код: plaintext
1.
2.
3.
4.
5.
6.
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient

rst.Open cmd


Debug.print cmd.Parameters("@DT_Curr  ").Value
...
Рейтинг: 0 / 0
Возврат из ХП recordset и output value
    #37133436
KamskyPaul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One, большое спасибо! Заработало...
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Возврат из ХП recordset и output value
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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