Estoy usando QGIS 2.0.1 y estoy conectado a una base de datos espacialmente habilitada de MS SQL Server (no ESRI). Puedo conectarme a la capa y cargarla en mi TOC muy bien. He ocultado una serie de campos que no son importantes por razones de visibilidad.
Ahora quiero exportar esos datos a otro tipo de datos (usaremos shapefile para este ejemplo). Cuando hago clic derecho en la capa, elijo "Guardar como" y defino el archivo de salida, aparece el siguiente error:
La exportación al archivo vectorial falló. Error: tipo no admitido para el campo GlobalID
Nota 1 : si marco "Omitir creación de atributo" en el cuadro de diálogo, el archivo de forma se crea sin errores.
Nota 2 : ArcGIS no tiene este problema, solo convierte el campo GUID al tipo "TEXTO".
Mirando la tabla, uno de los campos que he ocultado es un GUID de tipo SQL < uniqueidentifier >, que probablemente sea el culpable. En un intento de resolver esto, hice el campo "oculto". Supuse que debido a que el campo estaba oculto, QGIS no intentaría exportar este campo, pero resultó que no era el caso.
¿Puede definir los campos que desea exportar desde QGIS?
¿Es posible que QGIS exporte solo los campos "Visibles"? ¿O hay otra forma alternativa de hacer esto desde QGIS (tal vez definir los campos a través de una consulta ogr2ogr)? Esto parece una deficiencia de QGIS si no puedo definir qué campos exportar.
ACTUALIZACIÓN: Hice una prueba con un archivo de forma de muestra para ver si podía limitar los campos de salida. La siguiente línea de comando ogr2ogr funcionó y eliminó todos los campos excepto "nombre":
ogr2ogr -f "ESRI Shapefile" test.shp city.shp -sql "select name from city"
pero usando QGIS y agregando:
-sql "select name from city"
a la sección "capa" del cuadro de diálogo "Guardar como" no resultó en un archivo de forma con solo un campo. Así que realmente no veo cómo puedo manipular la salida del archivo para mostrar solo unos pocos campos seleccionados. Cualquier ayuda es apreciada.
fuente
-sql "select <fields> from <table>"
(excluyendo el campo GlobalID de los <campos>) a la parte "Capa" del cuadro de diálogo "Guardar como", pero el mismo error aún apareció. ¿Utilicé mal este bloque de código o es un error?Respuestas:
Si te funciona en la línea de comandos con ogr2ogr, creo que es la mejor solución para usar eso. Puede escribir un archivo bat simple para crear un archivo shape desde su base de datos MSSQL. Obviamente no puede editar los datos y guardarlos de nuevo en el servidor de esa manera.
QGIS tiene los cuadros de entrada Fuente de datos y Capa, pero estos son solo para los parámetros -dsco y -lco de ogr2ogr. El controlador de archivos de forma OGR no tiene dsco o lco útiles para sus necesidades:
http://www.gdal.org/ogr2ogr.html
http://www.gdal.org/ogr/drv_shapefile.html
Alternativamente, debería ser posible escribir un complemento de Python que solicite los datos del servidor con un comando SQL SELECT según sus necesidades. Esto incluso permitiría la edición de datos.
fuente
Le sugeriría que verifique la tabla de atributos para la capa en TOC y si existe el campo GlobalID. Cambie al modo de edición, elimine la columna que crea el problema durante la exportación y cierre la ventana. Luego guarde como shapefile o el formato de salida que desee. Espero que esto ayude.
fuente