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 *
********************************************************************
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 ? |