<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">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.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">Carlo</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Il giorno lun 9 dic 2019 alle ore 17:43 francesco marucci <<a href="mailto:francesco.marucci@gmail.com">francesco.marucci@gmail.com</a>> ha scritto:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>gentile lista,</div><div>ho un piccolo problema che però non riesco a risolvere:</div><div>
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);</div><div><br></div><div>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:</div><div></div><div><a href="https://www.sqlite.org/datatype3.html" target="_blank">https://www.sqlite.org/datatype3.html</a></div><div>
<ul><li>3.2 Affinity Of Expressions: "... Otherwise, an expression has no affinity." </li><li>3.3 Column Affinity For Views And Subqueries: ... "expressions always have no affinity".</li></ul>
</div><div>infatti un:</div><div> pragma table_info([mia_tabella]);<br></div><div><br></div><div>restituisce:<br></div><div><br></div><div>0 gid INTEGER 0 0<br>1 geom MULTIPOLYGON 0 0<br>2 nome TEXT(58) 0 0<br>3 tot_comuni 0 0<br></div><div><br></div><div>(cioè il campo tot_comuni non ha tipologia)<br></div><div><br></div><div>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).</div><div>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ò):</div><div><a href="https://stackoverflow.com/questions/54480436/how-to-get-sqlite-column-types-from-view-columns" target="_blank">https://stackoverflow.com/questions/54480436/how-to-get-sqlite-column-types-from-view-columns</a></div><div><br></div><div>
<div>nel caso specifico sono in QGIS 3.4.10 sia deb che win, SQLITE 3.26.0.<br></div>
</div><div><br></div><div>che ne pensate? <br></div><div>apro un ticket?<br></div><div></div><div><br></div><div>grazie.</div><div><br></div><div>saluti,</div><div>francesco<br></div><div><br></div><div><br></div><div><br></div></div>
_______________________________________________<br>
QGIS-it-user mailing list<br>
<a href="mailto:QGIS-it-user@lists.osgeo.org" target="_blank">QGIS-it-user@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/qgis-it-user" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-it-user</a><br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><i>Carlo TERSIGNI</i><div><i><font color="#666666">Via della Badia di cava 104, scala Z, 00142 - ROMA</font></i></div><div><i><font color="#666666">tel.: 333-4653589<br>e-mail: <a href="mailto:carter.012@gmail.com" target="_blank">carter.012@gmail.com</a></font></i><br></div></div></div></div></div></div></div></div>