QGIS e Spatialite

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

QGIS e Spatialite

Beppe
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
Reply | Threaded
Open this post in threaded view
|

Re: QGIS e Spatialite

a.furieri
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
Reply | Threaded
Open this post in threaded view
|

Re: QGIS e Spatialite

Beppe
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!!!
Reply | Threaded
Open this post in threaded view
|

Re: QGIS e Spatialite

Beppe
In reply to this post by a.furieri
Scusa ma si verificano gli stessi problemi se si eliminano le tabelle virtuali?
Reply | Threaded
Open this post in threaded view
|

Re: QGIS e Spatialite

a.furieri
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
Reply | Threaded
Open this post in threaded view
|

Re: QGIS e Spatialite

Beppe
Grazie!