Re: Pb d'ouverture de curseur

From: "Daniel Verite" <daniel(at)manitou-mail(dot)org>
To: " Valérie SCHNEIDER" <valerie(dot)schneider(at)meteo(dot)fr>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Pb d'ouverture de curseur
Date: 2004-09-29 15:52:05
Message-ID: 20040929175208.3508418@uruguay.brainstorm.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Valérie SCHNEIDER writes

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

Je pense que le SQL PREPARE interprète le ::timestamp comme une variable,
c'est pourquoi par la suite l'erreur indique qu'une variable est attendue.
C'est une erreur dans l'interprétation du SQL et un coup d'oeil au source de
ecpg laisse penser que le patch trivial ci-dessous règlerait le problème:

(le fichier est src/interfaces/ecpg/ecpglib/prepare.c)

*** prepare.c~ Fri May 21 15:50:12 2004
--- prepare.c Wed Sep 29 17:35:58 2004
***************
*** 46,54 ****

if (!string && *ptr == ':')
{
! *ptr = '?';
! for (++ptr; *ptr && isvarchar(*ptr); ptr++)
! *ptr = ' ';
}
}
}
--- 46,59 ----

if (!string && *ptr == ':')
{
! if (ptr[1]==':')
! ptr+=2; // skip '::'
! else
! {
! *ptr = '?';
! for (++ptr; *ptr && isvarchar(*ptr); ptr++)
! *ptr = ' ';
! }
}
}
}

Si vous appliquez ce patch, réinstallez simplement la libecpg après recompil.

--
Daniel
PostgreSQL-powered mail user agent and storage: http://www.manitou-mail.org

In response to

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Valérie SCHNEIDER 2004-09-30 07:44:05 Re: Pb d'ouverture de curseur
Previous Message Jean-Paul ARGUDO 2004-09-29 12:30:58 Re: Pb d'ouverture de curseur