Pages: 1
- Sujet précédent - [MapServer MapScript] Quotes et doubles quotes imbriqués impossibles ? - Sujet suivant
#1 Wed 04 July 2012 09:06
- didiblo
- Juste Inscrit !
- Date d'inscription: 4 Jul 2012
- Messages: 6
[MapServer MapScript] Quotes et doubles quotes imbriqués impossibles ?
Bonjour.
J’aurais eu besoin de faire une requête du genre :
Code:
"maTable"."monChamp" = 'maValeur'
Impossible de le placer dans le DATA de mon LAYER :
Code:
DATA "SELECT * FROM \"maTable\" WHERE \"maTable\".\"monChamp\" = 'maValeur' "
Même problème dans un FILTER :
Code:
FILTER " \"maTable\".\"monChamp\" = 'maValeur' "
Ou dans l'autre sens :
Code:
FILTER ' "maTable"."monChamp" = \'maValeur\' '
Sur une base de données PostGres je suis obligé de mettre le nom de la table et des champs entre guillemets pour gérer les noms en majuscules.
Vue que je passe par un code en mapScript en utilisant setFilter() ou updateFromString(), celui-ci place automatiquement les quotes et doubles quotes encadrantes.
Je précise, j'ai fait mes derniers tests en version 5.6 via mapscript PHP !
Des idées ?
Par avance merci.
Cdt.
Hors ligne
#2 Wed 04 July 2012 09:34
Re: [MapServer MapScript] Quotes et doubles quotes imbriqués impossibles ?
bonjour,
Deux possibilités :
Code:
FILTERITEM "monChamp" FILTER 'maValeur'
L'autre :
Code:
DATA "the_geom FROM (SELECT * FROM \"maTable\" WHERE \"maTable\".\"monChamp\" = 'maValeur' ) as foo using unique ogc_fid using srid=27571"
Tu as ogc_fid et le srid a changé
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Wed 04 July 2012 15:20
- didiblo
- Juste Inscrit !
- Date d'inscription: 4 Jul 2012
- Messages: 6
Re: [MapServer MapScript] Quotes et doubles quotes imbriqués impossibles ?
Merci pour cette réponse.
Cependant, j'aurais eu besoin d'utiliser quelque chose qui ressemble à la deuxième méthode.
Mais MapServer ne veut pas prendre la dé-spécialisation des quotes :s
Code:
DATA "the_geom FROM (SELECT * FROM \"maTable\" WHERE \"maTable\".\"monChamp\" = 'maValeur' ) as foo using unique ogc_fid using srid=27571"
Marche pas alors que :
Code:
DATA "the_geom FROM (SELECT * FROM maTable WHERE maTable.monChamp = 'maValeur' ) as foo using unique ogc_fid using srid=27571"
Fonctionne :s
Pour rappel, j'utilise bien MapServer version 5.6.6
Dernière modification par didiblo (Wed 04 July 2012 15:22)
Hors ligne
#4 Wed 04 July 2012 15:35
Re: [MapServer MapScript] Quotes et doubles quotes imbriqués impossibles ?
Bonjour,
Je pense que MapServer rajoute de lui même les quotes dans les noms des tables et schéma.
Si tu log du côté de pgsql tu verras que la requête réellement effectuée est un peu différente de ce que tu as écrit dans le mapfile.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#5 Wed 04 July 2012 15:54
- didiblo
- Juste Inscrit !
- Date d'inscription: 4 Jul 2012
- Messages: 6
Re: [MapServer MapScript] Quotes et doubles quotes imbriqués impossibles ?
Bonjour.
Je pense que MapServer rajoute de lui même les quotes dans les noms des tables et schéma.
Apparemment non :s
Hors ligne
#6 Wed 04 July 2012 17:25
- didiblo
- Juste Inscrit !
- Date d'inscription: 4 Jul 2012
- Messages: 6
Re: [MapServer MapScript] Quotes et doubles quotes imbriqués impossibles ?
j'ai trouvé une solution en utilisant le FILTER et en passant la condition entre parenthèse via la fonction updateFromString(), du genre :
Code:
$oLayer->updateFromString("LAYER FILTER (\"maTable\".\"monChamp\" = 'maValeur') END");
Merci
Hors ligne
#7 Mon 23 July 2012 09:12
- christophe_hardy
- Participant actif
- Lieu: Arras
- Date d'inscription: 24 Oct 2011
- Messages: 101
Re: [MapServer MapScript] Quotes et doubles quotes imbriqués impossibles ?
Bonjour,
j'ai un soucis de quotes imbriquées dans une requete SQL mais je ne parviens pas à faire fonctionner la fonction que vous indiquez ...
Code:
TYPE POINT $oLayer->updateFromString("LAYER FILTER (\"etab\".\"3_erp\" = 'Oui') END") UNITS METERS
Voyez-vous une erreur dans mon code ?
Voici le lien vers le post sur mon soucis que je ne parviens pas à résoudre : http://georezo.net/forum/viewtopic.php?pid=216060
Merci
Hors ligne
Pages: 1
- Sujet précédent - [MapServer MapScript] Quotes et doubles quotes imbriqués impossibles ? - Sujet suivant