Re: [ODBC] Problem calling a function from ODBC application

Поиск
Список
Период
Сортировка
От Vilches, Alejandro
Тема Re: [ODBC] Problem calling a function from ODBC application
Дата
Msg-id 9CE034E149417949A58AA9A4FA7E1C5586DC118E@ORSMSX115.amr.corp.intel.com
обсуждение исходный текст
Ответ на Re: [ODBC] Problem calling a function from ODBC application  ("Inoue, Hiroshi" <h-inoue@dream.email.ne.jp>)
Ответы Re: [ODBC] Problem calling a function from ODBC application  ("Inoue, Hiroshi" <h-inoue@dream.email.ne.jp>)
Re: [ODBC] Problem calling a function from ODBC application  (Adrian Klaver <adrian.klaver@aklaver.com>)
Список pgsql-odbc
Oh goodness, that's embarrassing :).

Okay, so I've tried the following:

- I fixed the small sample program and now that one executes successfully

- I created another sample program that calls a stored function with the same number of parameters and types as the one
inmy real application and now that fails with the following error message (the same error message I originally
reported):
ERROR: function my_function3(bigint, bigint, integer, integer, timestamp with time zone, integer, integer, integer,
integer,integer, integer, unknown, unknown) does not exist; 
Error while preparing parameters

I've attached the new sample program.  The stored function can be any dummy function.

Thanks!
Alejandro

-----Original Message-----
From: Inoue, Hiroshi [mailto:h-inoue@dream.email.ne.jp]
Sent: Friday, February 3, 2017 4:15 PM
To: Vilches, Alejandro <alejandro.vilches@intel.com>; Adrian Klaver <adrian.klaver@aklaver.com>
Cc: pgsql-odbc@postgresql.org
Subject: Re: [ODBC] Problem calling a function from ODBC application

Hi,

On 2017/02/04 4:41, Vilches, Alejandro wrote:
> Hi Adrian,
>
> Thanks for your reply.  To be honest, my application is a bit more complex and I simplified things to make the
questioneasier to ask.  I did go back and write up a small program as described in the question and now the error
messageI'm getting is different, but I'm still having issues calling my function from ODBC. 
>
> In essence, the problem I'm having is calling a function from ODBC that has an output parameter.  I can call it just
finefrom psql by simply executing "select * from my_function(...)".  But calling it from my application I get the
followingerror: "ERROR: syntax error at end of input;" 

I see the following in your code.

     ret = SQLPrepare(stmt, "{call my_function(?, ?, ?, ?}", SQL_NTS);

Should the last part ... ?, ?}  be ... ?, ?)}  ?

regards,
Hiroshi Inoue

> Please find the source code attached.  The stored function is very simple and silly:
>
> CREATE OR REPLACE FUNCTION public.my_function(a integer, b bigint, c character varying, OUT d bigint)
>   RETURNS bigint
>   LANGUAGE plpgsql
> AS $function$
> BEGIN
>      d := a + b + char_length(c);
> END
> $function$
>
> Thanks!
> Alejandro

Вложения

В списке pgsql-odbc по дате отправления:

Предыдущее
От: "Inoue, Hiroshi"
Дата:
Сообщение: Re: [ODBC] Problem calling a function from ODBC application
Следующее
От: "Inoue, Hiroshi"
Дата:
Сообщение: Re: [ODBC] Problem calling a function from ODBC application