Я використовую QGIS 2.0.1 і підключений до просторово включеної бази даних MS SQL Server (не ESRI). Я в змозі підключитися до шару і завантажувати його в свій TOC просто чудово. Я приховав ряд полів, не важливих для наочності.
Тепер я хочу експортувати ці дані в інший тип даних (для цього прикладу ми будемо використовувати shapefile). Коли я клацаю правою кнопкою миші на шарі, вибираю "Зберегти як" і визначаю вихідний файл, я отримую таку помилку:
Не вдалося експортувати у векторний файл. Помилка: непідтримуваний тип для поля GlobalID
Примітка 1 : Якщо в діалоговому вікні я встановіть прапорець "Пропустити створення атрибутів", файл форми створюється без помилок.
Примітка 2 : ArcGIS не має цієї проблеми, вона просто перетворює поле GUID у тип "TEXT".
Дивлячись на таблицю, одне із прихованих мною полів - це GUID типу SQL < унікальний ідентифікатор >, який, швидше за все, є винуватцем. Намагаючись вирішити це, я зробив поле «прихованим». Я би припустив, що оскільки поле було прихованим, 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>"
(виключаючи поле GlobalID з поля <fields>) до частини "Шару" діалогового вікна "Зберегти як", але все ж виникла та сама помилка. Я неправильно використовував цей блок коду, чи це помилка?