Sto usando QGIS 2.0.1 e sono collegato a un database abilitato spazialmente MS SQL Server (non ESRI). Sono in grado di connettermi al livello e caricarlo nel mio sommario bene. Ho nascosto un numero di campi che non sono importanti per motivi di visibilità.
Ora voglio esportare quei dati in un altro tipo di dati (useremo shapefile per questo esempio). Quando faccio clic con il pulsante destro del mouse sul livello, scelgo "Salva con nome" e definisco il file di output, viene visualizzato il seguente errore:
Esportazione in un file vettoriale non riuscita. Errore: tipo non supportato per il campo GlobalID
Nota 1 : Se seleziono "Salta creazione attributo" nella finestra di dialogo, lo shapefile viene creato senza errori.
Nota 2 : ArcGIS non presenta questo problema, converte semplicemente il campo GUID nel tipo "TEXT".
Guardando la tabella, uno dei campi che ho nascosto è un GUID di tipo SQL < uniqueidentifier >, che è probabilmente il colpevole. Nel tentativo di risolvere questo, ho reso il campo "nascosto". Avrei supposto che, poiché il campo era nascosto, QGIS non avrebbe tentato di esportare questo campo, ma non si è rivelato il caso.
Puoi definire i campi che vuoi esportare da QGIS?
È possibile per QGIS esportare solo i campi "Visibili"? Oppure esiste un altro modo alternativo per farlo da QGIS (forse definire i campi tramite una query ogr2ogr)? Questo sembra un difetto di QGIS se non riesco a definire quali campi esportare.
AGGIORNAMENTO: ho eseguito un test utilizzando uno shapefile di esempio per vedere se potevo limitare i campi di output. La seguente riga di comando ogr2ogr ha funzionato ed eliminato tutti i campi tranne "nome":
ogr2ogr -f "ESRI Shapefile" test.shp city.shp -sql "select name from city"
ma usando QGIS e aggiungendo:
-sql "select name from city"
nella sezione "layer" della finestra di dialogo "Salva con nome" non ha prodotto un file di forma con solo il campo singolo. Quindi non vedo davvero come posso manipolare l'output del file per mostrare solo alcuni campi selezionati. Qualsiasi aiuto è apprezzato.
-sql "select <fields> from <table>"
(escludendo il campo GlobalID da <campi>) alla parte "Livello" della finestra di dialogo "Salva con nome", ma lo stesso errore è ancora apparso. Ho utilizzato in modo improprio questo blocco di codice o è un bug?