[Cartoweb-users] Problem locate plugin
BERANGER Patrick - DDE 69/PM/SIG
Patrick.Beranger.dde69 at equipement.gouv.fr
Tue Feb 27 01:44:16 EST 2007
Hi all,
Thanks for your answers (thanks Yves for translation)
Apparently the syntax of the requete is not correct. That should be :
"SELECT gid::text,asbinary(force_collection(force_2d(the_geom)),'NDR'),gid::text from communes WHERE (gid in ('182'))
and (the_geom && setSRID('BOX3D(660000 2037903.1,876194 2189238.9)'::BOX3D,find_srid('','communes','the_geom') )) "
But how to correct syntax ?
Patrick
-----Message d'origine-----
De : cartoweb-users-bounces at lists.maptools.org
[mailto:cartoweb-users-bounces at lists.maptools.org]De la part de Dirk
Jesko
Envoyé : lundi 26 février 2007 10:26
À : Cartoweb Users
Objet : Re: [Cartoweb-users] Problem locate plugin
Hello,
just in case this has not been solved yet. I had a similar problem with mapserver 4.10.0. According to the mapserver mailing list, there is (was?) a bug in version 4.10.0 that created wrong WHERE clauses in the queryByAttributes function. I use the following workaround:
In corelugins\mapquery\server\ServerMapquery.php (around line 170) the statement that retrieves the query results from mapserver has to be extended by some quotes. It should look like
$ret = @$msLayer->queryByAttributes($idAttribute, '"'.$query.'"', MS_MULTIPLE);
This seems to work with mapserver 4.10.0 and PostGIS data sources. Please be aware, that I do not know, if it also works with other datasources or mapserver versions. Also, I do not know if this also applies to your problem, because my Postgres error was slightly different.
Regards,
Dirk
just
Yves Jacolin wrote:
Oups sorry, here a quick translation:
BERANGER Patrick ask :
When using the Plugin "Locate", he get this errors :
Error in prepare_database(): Error executing POSTGIS DECLARE (the actual
query) statement: 'DECLARE mycursor BINARY CURSOR FOR SELECT
gid::text,asbinary(force_collection(force_2d(the_geom)),'NDR'),gid::text
from communes WHERE (gid = 'gid in ('182')') and (the_geom && setSRID(
'BOX3D(660000 2037903.1,876194
2189238.9)'::BOX3D,find_srid('','communes','the_geom') ))'
He wondered if he added too much quotes.
Sylvain Beorchia replied:
Are you sure about : from communes WHERE (gid = 'gid in ('182')') and ( ?
It would be :
from communes WHERE (gid in ('182')) and (
Then I (Yves Jacolin) wrote :
Which release of mapserver do you use ? Because I spend a lot of time about a
bug on a mapserver 4.10 (or 4.8 don't reminder) which cause same error.
Pierre GIRAUD wrote:
He clarified the release of mapserver which get this bug and propose to test
its mapserver adding some parameter in the url:
http://.../cartoweb3/htdocs/client.php?id_recenter_layer=communes&id_recenter_ids=182
Y.
Le Jeudi 22 Février 2007 11:28, Alexandre Saunier a écrit :
Gentlemen,
may I remind you this is an english-writing mailing-list. ;)
Pierre GIRAUD wrote:
Bonjour,
Yves a en effet une bonne piste puisque il y avait un bug à peu près
similaire dans les versions 4.8.x de Mapserver qui avait été corrigé
dans la version 4.8.3.
Avez-vous testé le recentrage simple sur identifiant ? Vous pouvez
tester ça simplement en ajoutant les paramètres "id_recenter_layer" et
"id_recenter_ids" dans votre url en leur donnant les bonnes valeurs :
http://.../cartoweb3/htdocs/client.php?id_recenter_layer=communes&id_rece
nter_ids=182
Pierre
Yves Jacolin wrote:
Bonjour,
À tout hasard, quelle version de mapserver utilisez vous ? la 4.10 ?
la 4.10.1 ?
Y.
Le Mercredi 21 Février 2007 17:42, Sylvain Beorchia a écrit :
Salut,
es tu sur de ta notation :
from communes WHERE (gid = 'gid in ('182')') and (
?
ne serait-ce pas plutotPlugin "Locate"
from communes WHERE (gid in ('182')) and (
BERANGER Patrick - DDE 69/PM/SIG a écrit :
Bonjour,
J'essaie en vain d'utiliser le Plugin "Locate" et là je craque. J'ai
cette erreur lorsque je selectionne le lieu désiré : Error in
prepare_database(): Error executing POSTGIS DECLARE (the actual query)
statement: 'DECLARE mycursor BINARY CURSOR FOR SELECT
gid::text,asbinary(force_collection(force_2d(the_geom)),'NDR'),gid::te
xt
from communes WHERE (gid = 'gid in ('182')') and (the_geom && setSRID(
'BOX3D(660000 2037903.1,876194
2189238.9)'::BOX3D,find_srid('','communes','the_geom') ))'
Je crois comprendre que j'ai des " ' " en trop mais comment faire
pour les enlever ?
D'avance merci
_______________________________________________
Cartoweb-users mailing list
Cartoweb-users at lists.maptools.org
http://lists.maptools.org/mailman/listinfo/cartoweb-users
More information about the Cartoweb-users
mailing list