powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выполнение хранимой процедуры с параметром OUTPUT
9 сообщений из 9, страница 1 из 1
Выполнение хранимой процедуры с параметром OUTPUT
    #32009555
Andy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа профессионалы, укажите на возможную ошибку.
Необходимо из под MS Access 97 запустить хранимую процедуру с выходным параметром типа nchar, при попытке выполнения на строке cmd.Parameters.Append prm возвращается ошибка 3708 (Parameter object is improperly defined). Та же ситуация и при использовании входного параметра такого же типа.

Код функции:

Function test() As Integer
Dim cn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim prm As ADODB.Parameter

cn.CommandTimeout = 100
cn.Provider = "sqloledb"
provStr = c2sSrvConnStr
cn.Open provStr
Set cmd.ActiveConnection = cn
cmd.CommandText = "test"
cmd.CommandType = adCmdStoredProc
Set prm = cmd.CreateParameter("str", adVarChar, adParamOutput)
cmd.Parameters.Append prm
cmd.Execute
cn.Close
End Function

Код процедуры:
CREATE PROCEDURE test
@str nchar(10) output
AS
set @str = 'Ответ'
return
GO
...
Рейтинг: 0 / 0
Выполнение хранимой процедуры с параметром OUTPUT
    #32009557
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сталкивался с подобной штукой, правда в VB, решил проблему тем, что указал размер Varchar
Set prm = cmd.CreateParameter("str", adVarChar, 20, adParamOutput)

P.S. Мог ошибиться с позицией, но я думаю суть понятна.
...
Рейтинг: 0 / 0
Выполнение хранимой процедуры с параметром OUTPUT
    #32009558
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй так:
Set prm = cmd.CreateParameter("@str", adVarChar, adParamInputOutput)
...
Рейтинг: 0 / 0
Выполнение хранимой процедуры с параметром OUTPUT
    #32009559
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот то, что заметил Genady я проглядел - и это тоже.
...
Рейтинг: 0 / 0
Выполнение хранимой процедуры с параметром OUTPUT
    #32009565
Andy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ответ Genady к сожалению не помог при выполнении
Set param1 = cmd.CreateParameter("str", adVarChar, 20, adParamOutput)
выдается код ошибки 3001, сообщение типа (Arguments are of the wrong type, are out of acceptable range)
...
Рейтинг: 0 / 0
Выполнение хранимой процедуры с параметром OUTPUT
    #32009567
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот я ж говорил, что не помню в какой позиции задавать, вот взял и заставил лезть смотреть, вот так надо
Set prm = cmd.CreateParameter("str", adVarChar, adParamOutput, 20)
...
Рейтинг: 0 / 0
Выполнение хранимой процедуры с параметром OUTPUT
    #32009570
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Andy
А это Вам на будущее

http://www.activeserverpages.ru/ADO/
...
Рейтинг: 0 / 0
Выполнение хранимой процедуры с параметром OUTPUT
    #32009572
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, кстати имя параметра должно быть с "собачкой", т. е.
Set prm = cmd.CreateParameter("@str", adVarChar, adParamOutput, 20)
...
Рейтинг: 0 / 0
Выполнение хранимой процедуры с параметром OUTPUT
    #32009591
Andy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за советы, Genady
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выполнение хранимой процедуры с параметром OUTPUT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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