Hi,
How do I call a StoredProcdure, written in PlPqSql
which returns a set of records (or tableWhatever)
and wants parameters,
from ADO while using "adCmdStoredProc" ?
ERROR: set-valued function called in context that cannot accept a set
---------------------- VERY LONG VERSION OF THIS QUESTION
-------------------------
When I use Microsoft SQL-Server I make a SP like
CREATE PROCEDURE _test AS
select * from evt_event
return 42
GO
I call it just via name.
When I use PostgreSql I make a SQL-SP like
CREATE OR REPLACE FUNCTION "public"."_test" () RETURNS SETOF "public"."t1"
AS
$body$
select * from t1;
$body$
LANGUAGE 'sql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
I call it just via name too.
When I use PostgreSql I make a PLPG-SQL-SP like
CREATE OR REPLACE FUNCTION "public"."_test" () RETURNS SETOF "public"."t1"
AS
$body$
declare
rs record;
begin
for rs in select * from t1 loop
return next rs;
end loop;
RAISE NOTICE '42';
return;
end;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
How do I call this one ? (using adCmdStoredProc)
In the SQL-Editor I may call both pg-SPs via "select * from _test()"
EMS PostgreSql Manager SQL-Editor:
VariantePG1: select * from _test() : ok
VariantePG2: select * from _test() : ok
Ado:
RECORDSET rs = adoRecordSet.open <command>,...., adCmdStoredProc
VarianteMS : ok
VariantePG1: ok
VariantePG2: ERROR: set-valued function called in context that cannot
accept a set
Help,
Andreas