Re: Output parameters
| От | Hiroshi Inoue |
|---|---|
| Тема | Re: Output parameters |
| Дата | |
| Msg-id | 446BB29F.7070705@tpf.co.jp обсуждение исходный текст |
| Ответ на | Output parameters (Bart Samwel <bart@samwel.tk>) |
| Ответы |
Re: Output parameters
|
| Список | pgsql-odbc |
Bart Samwel wrote:
> Hiroshi Inoue wrote:
>> Bart Samwel wrote:
>>> Hiroshi Inoue wrote:
>>>> Bart Samwel wrote:
>>>>> Hi there,
>>>>>
>>>>> I've got a situation with the experimental enhanced branch driver
>>>>> (version 7.03.02.66), PostgreSQL 8.1 backend. I'm executing a query
>>>>> such as:
>>>>>
>>>>> SELECT myproc(?,?,?,?,?,?,?)
>>>>>
>>>>> where a number of the parameters are output parameters. I've bound
>>>>> buffers to the output parameters, but when I read the values, they
>>>>> contain garbage (uninitialized data, to be precise -- 0xcdcdcdcd).
>>>>
>>>> What kind of tool are you using and how do you execute the above
>>>> example concretely ?
>>>
>>> I'm using our own ODBC front end library, freshly written from spec.
>>> The same code works like a charm on Oracle to retrieve output
>>> parameters. I could figure out the exact sequence of calls if you
>>> want, there's quite a lot of wrapper code around it but It'd probably
>>> be possible.
>>
>> Could you send me the Mylog output ?
>
> Yes, it's attached. Please read on for some extra context information. :-)
>
> Anyway, it turns out that I misinterpreted the way PostgreSQL implements
> output parameters -- apparently, they are nothing but a convenient way
> to make PostgreSQL create a complex return type for a function. In
> PL/pgSQL, however, I can't specify the output parameters in the
> parameter list, while with the ODBC driver I can.
Please use ODBC's standard syntax to execute functions or procedures.
{[?=]call procedure-name[([?][,[?]]...)]}
For example, please execute {CALL baz(?, ?)} in your case.
regards,
Hiroshi Inoue
В списке pgsql-odbc по дате отправления: