[QGIS-it-user] QGIS pointslayerfromtable da tabella access
crigis
chosmos78 a hotmail.com
Ven 15 Apr 2016 07:10:01 PDT
Ciao a tutti,
sono iscritto da molti anni ma credo che è la prima volta che
scrivo...Comunque veniamo al dunque...Da utente inesperto di pyton, sto
tentando di cimentarmi nella creazione di un layer vettoriale shp a partire
da una tabella di MS Access mediante riga di comando in QGIS. L'obiettivo è
inserire il seguente codice nella sezione macro del file di progetto in modo
tale da creare ad ogni apertura del progetto lo shp file evitando di
ricreare manualmente il file quando ci sono aggiornamenti nel mdb. Ecco il
codice in cui ho tolto i puntamenti "personali":
import processing
def openProject():
pts=processing.runalg("qgis:pointslayerfromtable","ODBC:<nomeUserDSN>|layername=<nometabella>|subset="and"campoX"and"=
'ValoreX'","X","Y","EPSG:32633", None)
processing.load(pts['OUTPUT'])
Ma non funziona ovviamente :-). Ho provato a compilare manualmente il codice
sopra ad esclusione ovviamente del "def openProject():" per cercare di
capirci qualcosa di più ed emerge quello che segue:
Console Python
Usa iface per accedere all'interfaccia API QGIS oppure digita help(iface)
per le informazioni
import processing
pts=processing.runalg("qgis:pointslayerfromtable","ODBC:<nomeUserDSN>|layername=<nometabella>|subset="and"campoX"and"=
'ValoreX'","X","Y","EPSG:32633", None)
Error: Wrong parameter value: = 'ValoreX'
semplificando le cose ovvero eliminando il filtro che faccio sul campoX si
ha:
pts=processing.runalg("qgis:pointslayerfromtable","ODBC:<nomeUserDSN>|layername=<nometabella>","X","Y","EPSG:32633",
None)
Error: Wrong parameter value: ODBC:<nomeUserDSN>|layername=<nometabella>
Analoga situazione nel caso in cui al posto della connessione ODBC inserisco
il path del mdb il risultato non cambia:
Console Python
Usa iface per accedere all'interfaccia API QGIS oppure digita help(iface)
per le informazioni
import processing
pts=processing.runalg("qgis:pointslayerfromtable","<pathfolder>\<nomeDB>.mdb|layername=<nometabella>|subset="and"campoX"and"=
'ValoreX'","X","Y","EPSG:32633", None)
Error: Wrong parameter value: = 'ValoreX'
pts=processing.runalg("qgis:pointslayerfromtable","<pathfolder>\<nomeDB>.mdb|layername=<nometabella>","X","Y","EPSG:32633",
None)
Error: Wrong parameter value:
<pathfolder>\<nomeDB>.mdb|layername=<nometabella>
Mi sembra di capire che non funziona la connessione ODBC e il path verso un
db access...Qualcuno può aiutarmi?
Cercando in giro sul web non trovo molte informazioni che mi possono
aiutare, e l'help non mi sembra molto esplicativo.
Sono nuovo di questo linguaggio e spero di non aver detto troppi sfondoni
:-D. Un'altra info che vi posso dare è che provando lo stesso comando su
file csv (in questo caso solo con <pathfolder> e non con ODBC) tutto
funziona bene.
--
View this message in context: http://osgeo-org.1560.x6.nabble.com/QGIS-pointslayerfromtable-da-tabella-access-tp5261458.html
Sent from the QGIS Italian User mailing list archive at Nabble.com.
Maggiori informazioni sulla lista
QGIS-it-user