Ich verwende QGIS 2.0.1 und bin mit einer räumlich aktivierten MS SQL Server-Datenbank (nicht ESRI) verbunden. Ich kann mich mit der Ebene verbinden und sie problemlos in mein Inhaltsverzeichnis laden. Ich habe eine Reihe von Feldern ausgeblendet, die für die Sichtbarkeit nicht wichtig sind.
Jetzt möchte ich diese Daten in einen anderen Datentyp exportieren (in diesem Beispiel wird Shapefile verwendet). Wenn ich mit der rechten Maustaste auf die Ebene klicke, "Speichern unter" wähle und die Ausgabedatei definiere, wird folgende Fehlermeldung angezeigt:
Export in Vektordatei fehlgeschlagen. Fehler: Nicht unterstützter Typ für das Feld GlobalID
Hinweis 1 : Wenn ich im Dialogfeld die Option "Attributerstellung überspringen" aktiviere, wird das Shapefile fehlerfrei erstellt.
Hinweis 2 : ArcGIS hat dieses Problem nicht. Es konvertiert lediglich das GUID-Feld in den Typ "TEXT".
In der Tabelle ist eines der Felder, die ich ausgeblendet habe, eine GUID vom SQL-Typ < eindeutige Kennung >, die höchstwahrscheinlich der Schuldige ist. Um dies zu beheben, habe ich das Feld "versteckt" gemacht. Ich hätte angenommen, dass QGIS nicht versuchen würde, dieses Feld zu exportieren, da das Feld ausgeblendet war, aber dies stellte sich als nicht der Fall heraus.
Können Sie die Felder definieren, die Sie aus QGIS exportieren möchten?
Kann QGIS nur die "Sichtbaren" Felder exportieren? Oder gibt es eine andere alternative Möglichkeit, dies über QGIS zu tun (definieren Sie die Felder möglicherweise über eine ogr2ogr-Abfrage)? Dies scheint ein Mangel von QGIS zu sein, wenn ich nicht definieren kann, welche Felder exportiert werden sollen.
UPDATE: Ich habe einen Test mit einem Beispiel-Shapefile durchgeführt, um festzustellen, ob ich die Ausgabefelder einschränken kann. Die folgende ogr2ogr-Befehlszeile hat alle Felder außer "Name" bearbeitet und entfernt:
ogr2ogr -f "ESRI Shapefile" test.shp city.shp -sql "select name from city"
aber mit QGIS und Hinzufügen:
-sql "select name from city"
Der Abschnitt "Ebene" des Dialogfelds "Speichern unter" führte nicht zu einem Shapefile mit nur einem einzelnen Feld. Ich sehe also nicht wirklich, wie ich die Dateiausgabe so manipulieren kann, dass nur einige ausgewählte Felder angezeigt werden. Jede Hilfe wird geschätzt.
-sql "select <fields> from <table>"
, dem "Layer" -Teil des "Save As" -Dialogs (ohne das GlobalID-Feld aus den <Feldern>) hinzuzufügen , aber der gleiche Fehler ist immer noch aufgetreten. Habe ich diesen Codeblock missbraucht oder ist das ein Fehler?