![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TADOStoredProc и возвращаемые значения [D6, MSSQL]
AndDem © (2003-10-08 11:47:00)
ЕСТЬ:
1. Хранимая процедура в базе:
CREATE PROCEDURE GetUser
@NAME VARCHAR(50) OUTPUT
AS
SET @NAME=user_name()
2. КомпонентTADOStoredProc
ВОПРОС:
Как (насколько понимаю, черезParametersэтого компонента) получить выходной параметр (@name) после выполнения процедуры?
Заранее спасибо!
AndDem (2003-10-08 13:12:00) [1]
Дык, я не сразу просёк... Подтормаживаю :-))
Fiend (2003-10-08 13:07:00) [2]
То AndDem :
Ну ты даёшь, я же написал шо это надо!
AndDem (2003-10-08 12:51:00) [3]
Оказывается надо было добавить
sp.Parameters[0].Direction:=pdOutput;
Всё заработало. Спасибо всем!
AndDem (2003-10-08 12:49:00) [4]
Теоретически понятно, но практически что-то не получается...
Код:
sp.ProcedureName := "GetUser";
sp.Parameters.AddParameter;
sp.Parameters[0].Value := "OUTPUT";
try
sp.ExecProc
except
MessageDlg("Error...",mtError,[mbOk],0);
exit
end;
MessageDlg(sp.Parameters[0].Value,mtInformation,[mbOk],0);
И почему-то выдает "OUTPUT", а не, например, "dbo"
ZrenBy (2003-10-08 12:39:00) [5]
ADOSP.Parameters.ParamValues["@O_VALUE"]
Fiend (2003-10-08 12:39:00) [6]
Правильно понимаешь, сначала выполни процедуру потом получишь параметр. Тока когда определишь параметры не забудь удостовериться, что параметр @name имеет Direction=ptOutput