Salve a tutti,
Ho eliminato alcune tabelle da un database di Spatialite ma quando connetto QGIS al file, nella lista delle tabelle continuano a comparire nella lista anche quelle eliminate, anche se non è possibile aggiungerle al progetto GIS: al tentativo di aggiunta viene visualizzato un messaggio di errore. E' possibile far si che su QGIS le tabelle eliminate non compaiano nella lista delle tabelle? Grazie, Beppe |
On Sat, 4 Oct 2014 02:28:26 -0700 (PDT), Beppe wrote:
> Salve a tutti, > Ho eliminato alcune tabelle da un database di Spatialite Ciao Beppe, mica per caso le hai eliminate facendo semplicemente una DROP TABLE ? se e' realmente cosi' hai semplicemente prodotto un DB severamente danneggiato ed inutilizzabile ;-) > ma quando connetto > QGIS al file, nella lista delle tabelle continuano a comparire nella > lista > anche quelle eliminate, anche se non è possibile aggiungerle al > progetto > GIS: al tentativo di aggiunta viene visualizzato un messaggio di > errore. > E' possibile far si che su QGIS le tabelle eliminate non compaiano > nella > lista delle tabelle? > temo che QGIS c'entri poco o nulla; si limita semplicemente a prendere atto che deve aprire un DB "scassato", e cerca di arrangiarsi come meglio gli riesce in condizioni da allarme rosso. spiegazione succinta: - col cavolo che una TABLE che contiene Geometrie e' semplicemente una tavola come tutte le altre; richiede cautele molto speciali e va sempre maneggiata cum grano salis. - sicuramente una GeoTable e' sempre associata ad una riga nella tavola di metadati "geometry_columns" se tu droppi la tavola ma non fai anche la DELETE corrispondente su "geometry_columns" ecco che nasce una bella frittata. (ed immagino che sia proprio per questo motivo che QGIS continua a cercare il fantasma della tavola defunta) - probabilmente su quella tavola che hai droppato c'era uno Spatial Index; ecco che hai creato un orfanello che occupa spazio senza nessuna utilita' (e che probabilmente ti dara' grattacapi piu' avanti se provi a ricreare una tavola con lo stesso nome) - giusto per brevita' evito di elencare tutte le altre "rotture" che potresti avere causato (metadati vari, statistiche etc) conclusione: per eliminare "a mano" una GeoTable occorrono almeno cinque o sei passaggi separati. se ne salti anche uno solo ottieni un DB sicuramente "problematico". molto meglio utilizzare uno dei tools di supporto che ti consentono di rimuovere una GeoTable in tutta sicurezza compresi tutti gli annessi e connessi: a) se usi spatialite CLI puoi usare la dot macro ".dropgeo" b) se usi spatialite GUI c'e' un'apposita voce nel menu contestuale associato a ciascuna tavola c) se usi l'ultimissima 4.2.1-RC0 ci trovi anche una funzione SQL ad hoc: DropGeomTable() N.B.: ormai il danno e' fatto. l'unico modo per cercare di recuperare quel DB e' di ispezionare con calma e pazienza tutte le tavole dei metadati cercando di pulire tutti i riferimenti "rotti". ciao Sandro _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 666+40 iscritti al 5.6.2014 |
This post was updated on .
Mea culpa: ho fatto proprio quello che non avrei dovuto fare... ed in effetti ieri mi stavo scervellando su un comportamento anomalo sullo stesso db: anche se non so le cose siano correlate, facendo pratica sembrava non funzionare il left join (recipe #14 del cookbook)
![]() Io uso la GUI, ma sino ad ora ho sempre pensato che i comandi digitati fossero "più potenti" di quelli del menù contestuale... A questo punto, visto che si tratta solo di un db di esercitazione, mi pare che sia più conveniente eliminarlo e costruirlo nuovamente da zero: quando sarò più bravo (tra qualche decina d'anni...) potrò tentare di riparare guasti di questo tipo! Grazie Sandro per il tuo aiuto, come ricompensa ti meriteristi almeno una cassa di Cannonau di Jerzu!!! ![]() |
In reply to this post by a.furieri
Scusa ma si verificano gli stessi problemi se si eliminano le tabelle virtuali?
|
On Thu, 9 Oct 2014 10:08:02 -0700 (PDT), Beppe wrote:
> Scusa ma si verificano gli stessi problemi se si eliminano le tabelle > virtuali? > certo che si: cosi' come anche quando si elimina una Spatial View. perche' anche le Virtual Tables e le Spatial Views hanno le loro apposite tavole con i metadati di supporto ... e se non pulisci per benino anche tutte le informazioni registrate nei metadati otterrai sempre e comunque un "db azzoppato" con informazioni non consistenti tra di loro. quel che non va *mai* fatto e' di eseguire delle DROP secche quando si tratta di "oggetti speciali" che rientrano nella sfera d'azione diretta di spatialite. se invece usi le apposite funzioni (dot macros, gui widgets etc) tutto va sempre a posto; sono scritte apposta per gestire nel modo piu' adeguato anche le Virtual Tables e le Spatial Views oltre alle GeoTables. ciao Sandro _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 666+40 iscritti al 5.6.2014 |
Free forum by Nabble | Edit this page |