#1 Wed 18 July 2012 08:30
- christophe_hardy
- Participant actif
- Lieu: Arras
- Date d'inscription: 24 Oct 2011
- Messages: 101
[mapserver - Postgis]
Bonjour,
J'ai un soucis pour créer un MAP. Je pense savoir d'où vient le souci, mais impossible de trouver la solution.
Voici mon code :
Code:
LAYER CONNECTIONTYPE POSTGIS DATA "wkb_geometry from (select * from etab where [b]3_erp[/b] <> 'Oui') as foo USING UNIQUE ogc_fid"
Ma requête ne fonctionne pas, et à priori c'est le nom de mon champ qui commence par un chiffre 3_erp. Je dis cela, car lorsque j'effectue cette même requête avec un autre champ, le MAP fonctionne :
Code:
LAYER CONNECTIONTYPE POSTGIS DATA "wkb_geometry from (select * from etab where code_insee = '64005') as foo USING UNIQUE ogc_fid"
J'ai essayé plusieurs méthodes pour qu'il reconnaisse mon champ : ""3_erp"", """3_erp""", /"3_erp/", etab.3_erp, mais aucune ne fonctionne.
Quelqu'un connais l'astuce pour ce genre de requête ?
Merci beaucoup.
Hors ligne
#2 Wed 18 July 2012 10:54
- VianneyD
- Participant assidu
- Date d'inscription: 30 May 2011
- Messages: 153
Re: [mapserver - Postgis]
Bonjour,
As-tu essayé cela :
Code:
DATA "wkb_geometry from (select * from etab where 3_erp NOT LIKE 'Oui') as foo USING UNIQUE ogc_fid"
Vianney Dugrain
Hors ligne
#3 Wed 18 July 2012 11:28
- VianneyD
- Participant assidu
- Date d'inscription: 30 May 2011
- Messages: 153
Re: [mapserver - Postgis]
Tu as raison, le problème vient bien du nom du champ.
Il peut comporter des chiffres, mais il semble qu'il faille a minima que le nom du champ commence par un caractère
Vianney Dugrain
Hors ligne
#4 Wed 18 July 2012 11:42
- christophe_hardy
- Participant actif
- Lieu: Arras
- Date d'inscription: 24 Oct 2011
- Messages: 101
Re: [mapserver - Postgis]
Oui j'ai essayé le NOT LIKE mais toujours pas de carte ...
Je pense aussi que c'est le chiffre qui fait planter.
J'ai essayé plusieurs méthode pour trouver des guillemets convenables mais je ne vois pas ...
Hors ligne
#5 Thu 19 July 2012 09:43
- tbonfort
- Participant actif
- Date d'inscription: 11 Oct 2007
- Messages: 87
Re: [mapserver - Postgis]
Bonjour,
J'ai un soucis pour créer un MAP. Je pense savoir d'où vient le souci, mais impossible de trouver la solution.
Voici mon code :Code:
LAYER CONNECTIONTYPE POSTGIS DATA "wkb_geometry from (select * from etab where [b]3_erp[/b] <> 'Oui') as foo USING UNIQUE ogc_fid"Ma requête ne fonctionne pas, et à priori c'est le nom de mon champ qui commence par un chiffre 3_erp. Je dis cela, car lorsque j'effectue cette même requête avec un autre champ, le MAP fonctionne :
Code:
LAYER CONNECTIONTYPE POSTGIS DATA "wkb_geometry from (select * from etab where code_insee = '64005') as foo USING UNIQUE ogc_fid"J'ai essayé plusieurs méthodes pour qu'il reconnaisse mon champ : ""3_erp"", """3_erp""", /"3_erp/", etab.3_erp, mais aucune ne fonctionne.
Quelqu'un connais l'astuce pour ce genre de requête ?
Merci beaucoup.
Bonjour,
Mapserver supporte l'echappement des quotes depuis la version 5.6 je crois (peut-etre 6.0).
Code:
DATA "wkb_geometry from (select * from etab where \"3_erp\" <> 'Oui') as foo USING UNIQUE ogc_fid"
--
thomas
Hors ligne
#6 Thu 19 July 2012 10:36
- christophe_hardy
- Participant actif
- Lieu: Arras
- Date d'inscription: 24 Oct 2011
- Messages: 101
Re: [mapserver - Postgis]
Je ne dois pas avoir la version à jour alors, je vais regarder cela ...
Merci beaucoup
Hors ligne
#7 Mon 23 July 2012 09:07
- christophe_hardy
- Participant actif
- Lieu: Arras
- Date d'inscription: 24 Oct 2011
- Messages: 101
Re: [mapserver - Postgis]
Rien à faire, même avec la version 5.6, ma requête ne fonctionne pas :
Code:
DATA "wkb_geometry from (SELECT * FROM etab where \"3_erp\" = 'Oui') as foo USING UNIQUE ogc_fid"
J'ai aussi essayé la fonction :
Code:
$oLayer->updateFromString("LAYER FILTER (\"maTable\".\"monChamp\" = 'maValeur') END");
Mais soit je dois mal l'appliquer car pas de réponse dans ma carte
(lien du sujet : http://georezo.net/forum/viewtopic.php?id=80211)
Hors ligne
#8 Mon 23 July 2012 09:38
- damika
- Participant occasionnel
- Lieu: Bidart
- Date d'inscription: 3 Aug 2010
- Messages: 33
Re: [mapserver - Postgis]
Bonjour,
Concernant la déspécialisation des doubles ou simple quote, également impossible pour nous de l'appliquer malgré les exemples donnés sur MapServer.
Il n'est pas possible de mettre du Mapscript directement dans un Mapfile mais la solution serait effectivement de passer par un FILTER
Code:
DATA "wkb_geometry from etab USING UNIQUE ogc_fid" FILTER ("3_erp"='Oui')
Hors ligne
#9 Mon 23 July 2012 10:06
- christophe_hardy
- Participant actif
- Lieu: Arras
- Date d'inscription: 24 Oct 2011
- Messages: 101
Re: [mapserver - Postgis]
J'ai enfin trouvé la solution, en combinant les informations d'un peu tout le monde.
Voici la solution :
Code:
DATA "wkb_geometry from etab USING UNIQUE ogc_fid" FILTERITEM "3_erp" FILTER ("3_erp" = 'Non')
Il faut bien préciser sur quel champ il faut faire la sélection avant de mettre la condition, sinon ça ne renvoi aucune réponse.
Cette solution fonctionne.
Merci à vous.
Hors ligne