Re: ADO adCmdStoredProc PlPgSql-SP Parameters

From: "Jeff Eckermann" <jeff_eckermann(at)yahoo(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: ADO adCmdStoredProc PlPgSql-SP Parameters
Date: 2005-02-11 15:32:13
Message-ID: cuij3a$23v9$1@news.hub.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


<Postgre(dot)News(dot)Firma(at)spamgourmet(dot)net> wrote in message
news:000301c509f0$ae32c110$ca64a8c0(at)muenchen(dot)oneXtwo(dot)ag(dot)(dot)(dot)
> 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" ?

I don't believe that works (anyone who thinks I'm wrong, please correct me).
You will need to use select syntax, e.g. "select * from
setreturningfunction(param1, param2,....);" If you are using ODBC, you may
have a problem with that syntax, though I believe that the driver code has
been patched to deal with that, and a new release is on its way out (or you
could compile the source).

>
> 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
>
>
>
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
> (send "unregister YourEmailAddressHere" to majordomo(at)postgresql(dot)org)
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Mark 2005-02-11 15:53:46 how to capture query?
Previous Message Richard Huxton 2005-02-11 15:04:50 Re: a few doubts regarding postgres