Pb d'ouverture de curseur

From: Valérie SCHNEIDER <valerie(dot)schneider(at)meteo(dot)fr>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: Pb d'ouverture de curseur
Date: 2004-09-29 09:46:07
Message-ID: 1096451167.27793.44.camel@nazar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Bonjour,

J'ai un pb d'ouverture de curseur dans un prog C :

[valerie(at)nazar valerie]$ ecpg --version
ecpg (PostgreSQL 8.0.0beta1) 3.2.0

extrait du prog :

...
EXEC SQL INCLUDE sqlca;
EXEC SQL BEGIN DECLARE SECTION;
char sqlstmt[ 30720 ]; // string for sql statement
EXEC SQL END DECLARE SECTION;

strcpy( sqlstmt , _strcurs );

EXEC SQL PREPARE s FROM :sqlstmt;
EXEC SQL DECLARE CLICURS CURSOR FOR s;
EXEC SQL OPEN CLICURS;
if ( _verbose )
{
cerr << _(" VS est la :") << endl;
cerr << _("Open clicurs :")<<sqlca.sqlstate<< endl;
cerr << sqlstmt << endl;
}

...

A l'exécution, le PREPARE et le DECLARE se passent bien, et
à l'OPEN j'ai l'erreur sqlcode=-202, soit sqlstate=07001 dont
le libellé est "ECPG_TOO_FEW_ARGUMENTS".

Voici le contenu de la requête :
select u.ID_STATION,u.DAT,u.DAT_CALC,u.DAT_STAMP,u.ORIGINE
,null,null,null ,cast(to_char(dat,'J') as integer) ,u.HRR from H u
where (u.DAT BETWEEN
to_timestamp('10000101000000','YYYYMMDDHH24MISS')::timestamp AND
to_timestamp('30000101000000','YYYYMMDDHH24MISS')::timestamp) AND
(u.id_station between '31069001' AND '31069001' ) order by DAT

et lorsque j'exécute le prog j'obtiens dans un fichier de trace :

VS est la :
Open clicurs :07001
select u.ID_STATION,u.DAT,u.DAT_CALC,u.DAT_STAMP,u.ORIGINE
,null,null,null ,cast(to_char(dat,'J') as integer) ,u.HRR from H u
where (u.DAT BETWEEN
to_timestamp('10000101000000','YYYYMMDDHH24MISS')::timestamp AND
to_timestamp('30000101000000','YYYYMMDDHH24MISS')::timestamp) AND
(u.id_station between '31069001' AND '31069001' ) order by DAT

Si j'exécute cette requête au travers de psql, elle est correcte
et le résultat est celui espéré. Idem en utilisant un curseur.

Je ne comprends pas en premier lieu le code retour de l'erreur : 07001
n'a a priori pas grand chose à voir avec le OPEN (ce serait plutôt
pour un FETCH).

Quelqu'un a-t-il une idée ?

Merci, Valérie.

--

********************************************************************
* Valerie SCHNEIDER Tel : +33 (0)5 61 07 81 91 *
* METEO-FRANCE Fax : +33 (0)5 61 07 81 09 *
* DSI/DEV - Bases de donnees *
* 42, avenue G. Coriolis Email : Valerie(dot)Schneider(at)meteo(dot)fr *
* 31057 TOULOUSE Cedex - FRANCE http://www.meteo.fr *
********************************************************************
* L'information contenu dans ce mail n'a aucun caractere officiel *
********************************************************************

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Jean-Paul ARGUDO 2004-09-29 12:30:58 Re: Pb d'ouverture de curseur
Previous Message Christophe Martin 2004-09-27 09:13:58 Re: bug farceur de pg ?