Message posté par : Nighthawk
----------------------------------------
Bonjour,
Je vous contacte car j'ai récemment découvert les trigger qui me permettent notamment
de calculer automatiquement des surfaces lors de l'actualisation de mes couches
géopackage.
Seulement j'ai constaté un problème d'interprétation des opérateurs
"supérieur à" (>) et "inférieur à" (<) lorsque j'essaie de
créer un trigger. En effet, ces caractères semblent être interprétés comme des marqueurs
de balise type html (<a href:link>text</a>), donc le trigger qui en résulte
est complètement faux et a même tendance à faire planter QGIS car il tente d'appliquer
un trigger invraisemblable.
Pour info, l'idée est de calculer un nombre de logement pour chaque parcelle. J'ai
une surface en Ha et une densité en logements/Ha. Le calcul est simple :
-----------------
Code :
SURF_HA * DENSITE.
-----------------
Seulement, il peut arriver que le résultat de ce calcul soit inférieur à 0.5, donc
l'arrondi indiquera 0, ce qui m'ennuie. Je voulais donc arrondir à l'entier
supérieur ces valeurs inférieures à 0.5 (j'ai cru voir que la fonction ceil() ne
fonctionnait pas non plus dans les trigger) par une formule de ce type :
-----------------
Code :
CASE WHEN (("VOCATION" IN ( 'Habitat' , 'Mixte' )) AND
((new."SURF_HA" * "DENSITE") < 1))
THEN round((new."SURF_HA" * "DENSITE")+0.5, 0)
WHEN (("VOCATION" IN ( 'Habitat' , 'Mixte' )) AND
((new."SURF_HA" * "DENSITE") >= 1))
THEN round((new."SURF_HA" * "DENSITE"), 0)
ELSE 0
END
-----------------
Comment puis-je contourner ce problème ? Est-ce possible d'échapper les caractères
< et > ? Est-ce qu'une fonction existe qui pourrait remplacer ces caractères ?
D'avance merci pour vos réponses.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=346719#p346719
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net