我正在使用QGIS 2.0.1,并且已连接到MS SQL Server具有空间功能的数据库(不是ESRI)。我能够连接到该层并将其加载到我的目录中。我隐藏了一些对于可见性而言并不重要的字段。
现在,我想将该数据导出为另一种数据类型(在此示例中,我们将使用shapefile)。右键单击图层,选择“另存为”并定义输出文件时,出现以下错误:
导出到矢量文件失败。错误:字段GlobalID的不受支持的类型
注1:如果在对话框中选中“跳过属性创建”,则shapefile的创建没有错误。
注意2:ArcGIS不会出现此问题,它只是将GUID字段转换为“ TEXT”类型。
查看表,我隐藏的字段之一是SQL类型< uniqueidentifier > 的GUID ,这很可能是罪魁祸首。为了解决此问题,我将该字段设置为“隐藏”。我本来以为因为该字段是隐藏的,所以QGIS不会尝试导出该字段,但事实并非如此。
您可以定义要从QGIS导出的字段吗?
QGIS是否可以仅导出“可见”字段?还是有另一种从QGIS执行此操作的替代方法(也许通过ogr2ogr查询定义字段)?如果我无法定义要导出的字段,这似乎是QGIS的缺点。
更新:我使用一个示例shapefile进行了测试,以查看是否可以限制输出字段。以下ogr2ogr命令行有效并消除了除“名称”之外的所有字段:
ogr2ogr -f "ESRI Shapefile" test.shp city.shp -sql "select name from city"
但是使用QGIS并添加:
-sql "select name from city"
“另存为”对话框的“层”部分中的“否”不会导致仅带有单个字段的shapefile。因此,我真的看不到如何处理文件输出以仅显示选定的几个字段。任何帮助表示赞赏。
-sql "select <fields> from <table>"
(从<fields>中排除GlobalID字段)添加到“另存为”对话框的“层”部分,但是仍然弹出相同的错误。我是否滥用了此代码块,或者这是一个错误?