Обсуждение: ECPG question about PREPARE and EXECUTE

Поиск
Список
Период
Сортировка

ECPG question about PREPARE and EXECUTE

От
Boszormenyi Zoltan
Дата:
Hi,

a question came to us in the form of a code example,
which I shortened. Say, we have this structure:

============================
EXEC SQL BEGIN DECLARE SECTION;

struct t1 {       int     id;       char    t[80];
};
typedef struct t1 t1_t;

t1_t    t1;
EXEC SQL END DECLARE SECTION;
============================

and a similar table in the database. The client wanted
to use a PREPARE / EXECUTE pair this way:

============================
EXEC SQL PREPARE myquery AS
SELECT * FROM t1 WHERE id = :t1.id;

t1.id = 1;

EXEC SQL EXECUTE myquery INTO :t1;
============================

Upon executing the EXECUTE query, we get an error:

SQL error: too few arguments on line NNN

The problem is that the input parameters given to the
PREPARE are not preserved and carried to the EXECUTE.

Any comment on why it isn't done?

Best regards,
Zoltán Böszörményi

-- 
----------------------------------
Zoltán Böszörményi
Cybertec Schönig & Schönig GmbH
Gröhrmühlgasse 26
A-2700 Wiener Neustadt, Austria
Web: http://www.postgresql-support.de    http://www.postgresql.at/



Re: ECPG question about PREPARE and EXECUTE

От
Michael Meskes
Дата:
On Wed, Nov 10, 2010 at 11:44:52AM +0100, Boszormenyi Zoltan wrote:
> a question came to us in the form of a code example,
> which I shortened. Say, we have this structure:
> ...
> Any comment on why it isn't done?

Missing feature. Originally the pure text based statement copying wasn't able
to cope with these and then it simply wasn't implemented when we went to server
side prepares, that is if my memory serves well.

The same feature is implemented for cursor declaration/open I think.

Michael
-- 
Michael Meskes
Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
Michael at BorussiaFan dot De, Meskes at (Debian|Postgresql) dot Org
Jabber: michael.meskes at googlemail dot com
VfL Borussia! Força Barça! Go SF 49ers! Use Debian GNU/Linux, PostgreSQL