<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">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">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>