Tôi đang sử dụng QGIS 2.0.1 và được kết nối với cơ sở dữ liệu MS SQL Server được kích hoạt không gian (không phải ESRI). Tôi có thể kết nối với lớp và tải nó vào TOC của tôi tốt. Tôi đã ẩn một số lĩnh vực không quan trọng vì mục đích hiển thị.
Bây giờ tôi muốn xuất dữ liệu đó sang loại dữ liệu khác (chúng tôi sẽ sử dụng shapefile cho ví dụ này). Khi tôi nhấp chuột phải vào lớp, chọn "Lưu dưới dạng" và xác định tệp đầu ra, tôi gặp lỗi sau:
Xuất thành tập tin vector không thành công. Lỗi: loại không được hỗ trợ cho trường GlobalID
Lưu ý 1 : Nếu tôi chọn "Bỏ qua việc tạo thuộc tính" trong hộp thoại, shapefile được tạo không có lỗi.
Lưu ý 2 : ArcGIS không gặp phải vấn đề này, nó chỉ chuyển đổi trường GUID thành loại "TEXT".
Nhìn vào bảng, một trong những trường mà tôi đã ẩn là một GUID loại SQL < uniqueidentifier >, rất có thể là thủ phạm. Trong một nỗ lực để giải quyết điều này, tôi đã làm cho trường "ẩn". Tôi đã có thể giả định rằng vì trường bị ẩn, QGIS sẽ không cố xuất trường này, nhưng hóa ra không phải vậy.
Bạn có thể xác định các lĩnh vực bạn muốn xuất từ QGIS không?
Có thể cho QGIS chỉ xuất các trường "Hiển thị" không? Hoặc có một cách khác để làm điều này từ QGIS (có thể xác định các trường thông qua truy vấn ogr2ogr)? Điều này có vẻ như là một thiếu sót của QGIS nếu tôi không thể xác định trường nào sẽ xuất.
CẬP NHẬT: Tôi đã thực hiện một thử nghiệm bằng cách sử dụng một shapefile mẫu để xem liệu tôi có thể giới hạn các trường đầu ra không. Dòng lệnh ogr2ogr sau đây đã hoạt động và loại bỏ tất cả các trường ngoại trừ "name":
ogr2ogr -f "ESRI Shapefile" test.shp city.shp -sql "select name from city"
nhưng sử dụng QGIS và thêm:
-sql "select name from city"
đến phần "lớp" của hộp thoại "Lưu dưới dạng" không dẫn đến một shapefile chỉ với một trường duy nhất. Vì vậy, tôi không thực sự thấy làm thế nào tôi có thể thao tác đầu ra tệp để chỉ hiển thị một vài trường được chọn. Bất kỳ trợ giúp được đánh giá cao.
-sql "select <fields> from <table>"
(không bao gồm trường GlobalID từ <trường>) vào phần "Lớp" của hộp thoại "Lưu dưới dạng", nhưng vẫn xuất hiện lỗi tương tự. Tôi đã sử dụng sai khối mã này, hay đây là một lỗi?