Re: [QGIS-it-user] tipo di campi espressione in viste geopackage
Totò, come workaround il tuo consiglio è sicuramente valido ed applicandolo funziona, riesco a tematizzare. mi piaceva capire se si poteva fare qualcosa di più per definire in Qgis questi campi "fantasma". grazie un saluto, francesco Il giorno mar 10 dic 2019 alle ore 11:04 Totò ha scritto: > > > Ciao, > hai provato ad usare una espressione per tematizzare, per esempio > > to_int(tuo_campo) > > ciao > > > ___ QGIS-it-user mailing list QGIS-it-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user
Re: [QGIS-it-user] tipo di campi espressione in viste geopackage
Ho avuto un problema simile, anche se non dovuto al passaggio su SpatiaLite, ma leggendo un file csv. Ho risolto creando un nuovo campo e trasferendoci i valori dell'attributo letti come "string", con la funzione to_int dal menù conversioni del calcolatore di campi. Poi ho cancellato la colonna con le stringhe. Carlo Il giorno lun 9 dic 2019 alle ore 17:43 francesco marucci < francesco.maru...@gmail.com> ha scritto: > gentile lista, > ho un piccolo problema che però non riesco a risolvere: > all'interno di un geopackage ho creato una vista, nella quale ho generato > un campo con una espressione (tipicamente un count(*) as tot_comuni, per > fare un esempio); > > il problema è dato dal fatto che questo campo, proveniente da una > espressione, in SQLITE non ha un tipo (pur avendo provato tutti i cast del > mondo), come leggo da qui: > https://www.sqlite.org/datatype3.html > >- 3.2 Affinity Of Expressions: "... Otherwise, an expression has no >affinity." >- 3.3 Column Affinity For Views And Subqueries: ... "expressions >always have no affinity". > > infatti un: > pragma table_info([mia_tabella]); > > restituisce: > > 0 gid INTEGER 0 0 > 1 geom MULTIPOLYGON 0 0 > 2 nome TEXT(58) 0 0 > 3 tot_comuni 0 0 > > (cioè il campo tot_comuni non ha tipologia) > > e fin qui sembra un problema di SQLITE: tale problema però si ripercuote > in QGIS in quanto il campo viene visto come un Qstring (pur contenendo > solamente degli interi) e quindi ad esempio non posso costruire una legenda > graduata basata su questo campo (cosa assai spiacevole). > un workaround potrebbe essere quello di riconoscere il tipo di campo, > invece di assegnargli un Qstring se il tipo non è presente nel pragma, > magari leggendo il valore del primo record, come suggerito qui (in ambiente > java però): > > https://stackoverflow.com/questions/54480436/how-to-get-sqlite-column-types-from-view-columns > > nel caso specifico sono in QGIS 3.4.10 sia deb che win, SQLITE 3.26.0. > > che ne pensate? > apro un ticket? > > grazie. > > saluti, > francesco > > > > ___ > QGIS-it-user mailing list > QGIS-it-user@lists.osgeo.org > https://lists.osgeo.org/mailman/listinfo/qgis-it-user > -- *Carlo TERSIGNI* *Via della Badia di cava 104, scala Z, 00142 - ROMA* *tel.: 333-4653589e-mail: carter@gmail.com * ___ QGIS-it-user mailing list QGIS-it-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user
Re: [QGIS-it-user] tipo di campi espressione in viste geopackage
francesco marucci wrote > tale problema però si ripercuote in > QGIS in quanto il campo viene visto come un Qstring (pur contenendo > solamente degli interi) e quindi ad esempio non posso costruire una > legenda > graduata basata su questo campo (cosa assai spiacevole). Ciao, hai provato ad usare una espressione per tematizzare, per esempio to_int(tuo_campo) ciao - https://pigrecoinfinito.wordpress.com/ -- Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html ___ QGIS-it-user mailing list QGIS-it-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user
[QGIS-it-user] tipo di campi espressione in viste geopackage
gentile lista, ho un piccolo problema che però non riesco a risolvere: all'interno di un geopackage ho creato una vista, nella quale ho generato un campo con una espressione (tipicamente un count(*) as tot_comuni, per fare un esempio); il problema è dato dal fatto che questo campo, proveniente da una espressione, in SQLITE non ha un tipo (pur avendo provato tutti i cast del mondo), come leggo da qui: https://www.sqlite.org/datatype3.html - 3.2 Affinity Of Expressions: "... Otherwise, an expression has no affinity." - 3.3 Column Affinity For Views And Subqueries: ... "expressions always have no affinity". infatti un: pragma table_info([mia_tabella]); restituisce: 0 gid INTEGER 0 0 1 geom MULTIPOLYGON 0 0 2 nome TEXT(58) 0 0 3 tot_comuni 0 0 (cioè il campo tot_comuni non ha tipologia) e fin qui sembra un problema di SQLITE: tale problema però si ripercuote in QGIS in quanto il campo viene visto come un Qstring (pur contenendo solamente degli interi) e quindi ad esempio non posso costruire una legenda graduata basata su questo campo (cosa assai spiacevole). un workaround potrebbe essere quello di riconoscere il tipo di campo, invece di assegnargli un Qstring se il tipo non è presente nel pragma, magari leggendo il valore del primo record, come suggerito qui (in ambiente java però): https://stackoverflow.com/questions/54480436/how-to-get-sqlite-column-types-from-view-columns nel caso specifico sono in QGIS 3.4.10 sia deb che win, SQLITE 3.26.0. che ne pensate? apro un ticket? grazie. saluti, francesco ___ QGIS-it-user mailing list QGIS-it-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user