Skip site navigation (1) Skip section navigation (2)

Re: Output parameters

From: Bart Samwel <bart(at)samwel(dot)tk>
To: Hiroshi Inoue <inoue(at)tpf(dot)co(dot)jp>
Cc: pgsql-odbc(at)postgresql(dot)org
Subject: Re: Output parameters
Date: 2006-05-18 09:33:37
Message-ID: 446C3F71.6060500@samwel.tk (view raw or flat)
Thread:
Lists: pgsql-odbc
Hiroshi Inoue wrote:
> 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.

Ah, that did the trick! I wasn't aware of this standard syntax, we've 
only recently started to use *real* ODBC instead of just using it as an 
easy way of getting the same SQL into different databases through one 
interface. I guess we'll have to start using more of these ODBC 
constructs. Thanks very much for your explanation!

Cheers,
Bart

In response to

pgsql-odbc by date

Next:From: noreplyDate: 2006-05-19 05:23:01
Subject: [ psqlodbc-Bugs-1000648 ] Visual Studio 2005 DataSet Designer "Add Query..." wizard fails with a syntax error if SELECT query contains a WHERE clause
Previous:From: Hiroshi InoueDate: 2006-05-17 23:32:47
Subject: Re: Output parameters

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group