![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с output-параметрами в ADO [D5, MSSQL]
T{}r(l-l © (2004-03-12 11:40:00)Доброго времени суток времени, уважаемые!
Никак не разберусь с 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, может я совсем не правильно подхожу к вопросу?
А вообще смысл процедур - передача во внешнюю программу сообщений о ходе выполнения хранимой процедуры.
Заранее благодарен.
T{}r(l-l (2004-03-12 13:01:00) [1]да, да , да, точно, мы тоже тут докопались , плюс имя процедуры надо ставить перед созданием параметров, спасибо! ; )
Nikky (2004-03-12 12:38:00) [2]ах да, у вас там дефолт-значения нет
сделайте
@MyMess char (100) = NULL output
T{}r(l-l (2004-03-12 12:17:00) [3]Попробовал - всё то же "Procedure 'MyProc' expects parameter '@MyMess', which was not supplied"
Nikky (2004-03-12 12:07:00) [4]
> 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;