Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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é wink

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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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 smile

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

 

Pied de page des forums

Powered by FluxBB