Обсуждение: Calling a function via ODBC
Hi,
I have postgres installed on my Machine (MacOSX) and connect to it via
ODBC from my C app.
All works ok (select, insert, update and so on).
Now I made the following simple function:
CREATE OR REPLACE FUNCTION concat_text (TEXT, TEXT) RETURNS TEXT AS '
BEGIN
RETURN $1 || $2;
END;
' LANGUAGE 'plpgsql';
and called it succesfully doing:
SQLExecDirect(... ""select concat_text('val', 'erio')"" ...)
and fetching the result with SQLFetchScroll etc..., all works ok.
SO WHICH IS THE QUESTION?
THE QUESTION IS:
Is there a way to call my func using the ODBC syntax:
{? = CALL concat_text(?, ?)}
using SQLBindParameter to bind variable (input/output) to '?' and
getting return value directly in a bound var (without any Fetch) (see
http://www.ddart.net/mssql/sql70/odbcht10_1.htm )?
Does someone have an example in using SQLBindParameter to set
parameter IN and get return value OUT?
Thanks for help
<fontfamily><param>Geneva</param>==================================================================
Valerio Ferrucci Tabasoft Sas
ferrucci@tabasoft.it http://www.tabasoft.it
</fontfamily>
Hi,
I have postgres installed on my Machine (MacOSX) and connect to it via
ODBC from my C app.
All works ok (select, insert, update and so on).
Now I made the following simple function:
CREATE OR REPLACE FUNCTION concat_text (TEXT, TEXT) RETURNS TEXT AS '
BEGIN
RETURN $1 || $2;
END;
' LANGUAGE 'plpgsql';
and called it succesfully doing:
SQLExecDirect(... ""select concat_text('val', 'erio')"" ...)
and fetching the result with SQLFetchScroll etc..., all works ok.
SO WHICH IS THE QUESTION?
THE QUESTION IS:
Is there a way to call my func using the ODBC syntax:
{? = CALL concat_text(?, ?)}
using SQLBindParameter to bind variable (input/output) to '?' and
getting return value directly in a bound var (without any Fetch) (see
http://www.ddart.net/mssql/sql70/odbcht10_1.htm )?
Does someone have an example in using SQLBindParameter to set parameter
IN and get return value OUT?
Thanks for help
==================================================================
Valerio Ferrucci Tabasoft Sas
ferrucci@tabasoft.it http://www.tabasoft.it
Valerio Ferrucci wrote:
>
> Hi,
> I have postgres installed on my Machine (MacOSX) and connect to it via ODBC from my C app.
> All works ok (select, insert, update and so on).
>
> Now I made the following simple function:
> CREATE OR REPLACE FUNCTION concat_text (TEXT, TEXT) RETURNS TEXT AS '
> BEGIN
> RETURN $1 || $2;
> END;
> ' LANGUAGE 'plpgsql';
>
> and called it succesfully doing:
> SQLExecDirect(... ""select concat_text('val', 'erio')"" ...)
> and fetching the result with SQLFetchScroll etc..., all works ok.
>
> SO WHICH IS THE QUESTION?
> THE QUESTION IS:
> Is there a way to call my func using the ODBC syntax:
> {? = CALL concat_text(?, ?)}
> using SQLBindParameter to bind variable (input/output) to '?'
> and getting return value directly in a bound var (without any
> Fetch) (see http://www.ddart.net/mssql/sql70/odbcht10_1.htm )?
Yes. As for your example, bind the 1st parameter
as SQL_PARAM_OUTPUT and 2nd/3rd paramters as SQL_
PARAM_INPUT.
regards,
Hiroshi Inoue
http://w2422.nsk.ne.jp/~inoue/
Can you point me to some C examples?
Thanks
>?Valerio Ferrucci wrote:
>>
>> Hi,
>> I have postgres installed on my Machine (MacOSX) and connect to it
>>via ODBC from my C app.
>> All works ok (select, insert, update and so on).
>>
>> Now I made the following simple function:
>> CREATE OR REPLACE FUNCTION concat_text (TEXT, TEXT) RETURNS TEXT AS '
>> BEGIN
>> RETURN $1 || $2;
>> END;
>> ' LANGUAGE 'plpgsql';
>>
>> and called it succesfully doing:
>> SQLExecDirect(... ""select concat_text('val', 'erio')"" ...)
>> and fetching the result with SQLFetchScroll etc..., all works ok.
>>
>> SO WHICH IS THE QUESTION?
>> THE QUESTION IS:
>> Is there a way to call my func using the ODBC syntax:
> > {? = CALL concat_text(?, ?)}
>> using SQLBindParameter to bind variable (input/output) to '?'
>> and getting return value directly in a bound var (without any
>> Fetch) (see http://www.ddart.net/mssql/sql70/odbcht10_1.htm )?
>
>Yes. As for your example, bind the 1st parameter
>as SQL_PARAM_OUTPUT and 2nd/3rd paramters as SQL_
>PARAM_INPUT.
>
>regards,
>Hiroshi Inoue
> http://w2422.nsk.ne.jp/?inoue/
--
==================================================================
Valerio Ferrucci Tabasoft Sas
ferrucci@tabasoft.it http://www.tabasoft.it