Message posté par : cllemendavvid
----------------------------------------
Bonsoir à tous
Je suis novice en python
je souhaite simplement transvaser sur Qgis un résultat récupéré depuis une requête
Postgresql
le résultat doit être une table Qgis
Pour cela je voudrais écrire un script python
Après l'import des différents modules
je passe d'abord par une connexion à une base de données Postgresql
puis je créer une couche vecteur
le but ensuite est de transvaser le résultat de la requête Sql
vers la couche Qgis
J'ai récupéré le début d'un ancien code
ça donne ceci
-----------------
Code :
import psycopg2
import psycopg2.extras
import os
from qgis.core import *
from qgis.utils import iface
from PyQt4.QtCore import*
import processing
Host = serveur
DBname = bdd
schema = Schema
User = login
Password = mot_de_passe
Folder=Dossier
conn_string = "host='"+Host+"'
dbname='"+DBname+"' user='"+User+"'
password='"+Password+"'"
conn = psycopg2.connect(conn_string)
cursor = conn.cursor()
uri1='None'
EtiQuet = QgsVectorLayer(uri1,"EtiQuet","memory")
pr = EtiQuet.dataProvider()
EtiQuet.startEditing()
pr.addAttributes([QgsField("section",QVariant.String),QgsField("code_cb",QVariant.String),QgsField("capacite",QVariant.Int),QgsField("nb_etiq",QVariant.Int)
])
requete1 ="SELECT * FROM pm996.cb" #cette requete ne sera pas celle utilisée
mais plus simple pour l'exemple
cursor.execute(requete1)
resultats = cursor.fetchall()
-----------------
Puis je pense utiliser les fonctions suivantes
QgsFeature() | addFeatures
merci de votre aide
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=354889#p354889
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