Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизПроблема с output-параметрами в ADO Найти похожие ветки
← →
T{}r(l-l (2004-03-12 11:40) [0]Доброго времени суток времени, уважаемые!
Никак не разберусь с output параметрами в ADO из Delphi
вот код Delphi
begin
with ADOStProc1 do
begin
Close;
Parameters.CreateParameter("@MyMess",ftString,pdOutput,100,null);
ProcedureName:="MyProc";
ExecProc;
Memo1.Text:=Parameters.ParamByName("@MyMess").Value;
end;
end;
вот хранимая на сервере
CREATE PROCEDURE [MyProc]
@MyMess char (100) output
AS
DECLARE
@MY int
SELECT @MY=MAX(Quantity)
FROM MyTemp
IF @MY=130
BEGIN
--RAISERROR(60001,16,1)
SET @MyMess=(SELECT description FROM master.dbo.sysmessages WHERE error=60003)
--PRINT @MyMess
END
Go
из Дэлфи всё время пишет "Procedure "MyProc" expects parameter "@MyMess", which was not supplied". Я только перехожу на ADO, может я совсем не правильно подхожу к вопросу?
А вообще смысл процедур - передача во внешнюю программу сообщений о ходе выполнения хранимой процедуры.
Заранее благодарен.
← →
Nikky © (2004-03-12 12:07) [1]
> with ADOStProc1 do
> begin
> Close;
> Parameters.CreateParameter("@MyMess",ftString,pdOutput,100,null);
> ProcedureName:="MyProc";
> ExecProc;
> Memo1.Text:=Parameters.ParamByName("@MyMess").Value;
> end;
> end;
попробуйте такwith ADOStoredProc1 do begin
Close;
ProcedureName := "MyProc";
Parameters.Refresh;
ExecProc;
Memo1.Text := Parameters.ParamByName("@MyMess").Value;
end;
← →
T{}r(l-l (2004-03-12 12:17) [2]Попробовал - всё то же "Procedure "MyProc" expects parameter "@MyMess", which was not supplied"
← →
Nikky © (2004-03-12 12:38) [3]ах да, у вас там дефолт-значения нет
сделайте@MyMess char (100) = NULL output
← →
T{}r(l-l (2004-03-12 13:01) [4]да, да , да, точно, мы тоже тут докопались , плюс имя процедуры надо ставить перед созданием параметров, спасибо! ; )
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.043 c