QGIS 2.0.1を使用していて、MS SQL Serverの空間対応データベース(ESRIではない)に接続しています。レイヤーに接続してTOCに問題なく読み込むことができます。見やすくするために重要ではないフィールドをいくつか隠しました。
次に、そのデータを別のデータ型にエクスポートします(この例ではシェープファイルを使用します)。レイヤーを右クリックして[名前を付けて保存]を選択し、出力ファイルを定義すると、次のエラーが発生します。
ベクターファイルへのエクスポートに失敗しました。エラー:フィールドGlobalIDでサポートされていないタイプ
注1:ダイアログボックスで[属性の作成をスキップ]をオンにすると、エラーなしでシェープファイルが作成されます。
注2:ArcGISにはこの問題はありません。GUIDフィールドを「TEXT」タイプに変換するだけです。
表を見ると、私が隠していることを分野の一つは、SQLタイプ<のGUIDであるuniqueidentifierで、すべてのlikelyhoodに犯人です>、。これを解決するために、フィールドを「非表示」にしました。フィールドが非表示になっているため、QGISがこのフィールドをエクスポートしようとはしなかったと思いましたが、そうではありませんでした。
QGISからエクスポートするフィールドを定義できますか?
QGISが「可視」フィールドのみをエクスポートすることは可能ですか?または、QGISからこれを行う別の代替方法はありますか(おそらくogr2ogrクエリを介してフィールドを定義します)?エクスポートするフィールドを定義できない場合、これはQGISの欠点のようです。
更新:サンプルシェープファイルを使用して、出力フィールドを制限できるかどうかをテストしました。次のogr2ogrコマンドラインが機能し、「name」以外のすべてのフィールドが削除されました。
ogr2ogr -f "ESRI Shapefile" test.shp city.shp -sql "select name from city"
QGISを使用して追加:
-sql "select name from city"
[名前を付けて保存]ダイアログの[レイヤー]セクションに、単一のフィールドのみを含むシェープファイルは作成されませんでした。そのため、ファイル出力を操作して、選択したいくつかのフィールドだけを表示する方法がわかりません。どんな助けでもありがたいです。
-sql "select <fields> from <table>"
、[名前を付けて保存]ダイアログの[レイヤー]部分に(<fields>からGlobalIDフィールドを除外して)追加しようとしましたが、同じエラーがまだポップアップしました。このコードブロックを誤用しましたか、それともバグですか?