Открытие Esri Personal Geodatabase (* .mdb) с использованием QGIS?


12

Можно ли открыть персональную базу геоданных Esri (* .mdb; ArcGIS 10.2) в QGIS 2.6? Предыдущие версии были правы.


3
Вы пробовали это и получили ошибку, или вы спрашиваете, есть ли возможность открыть ESRI PGDB в QGIS 2.6? Опция доступна в Слой > Добавить слой > Добавить векторный слой > База данных > выберите ESRI Personal GeoDatabase в качестве Типа
Joseph

Вы используете 64-битную версию QGIS для Windows?
nmtoken

Я пытался сделать это, но не позволяет сохранить файл qgis.bat с изменениями. Любая идея? Спасибо
NandoSC

Ответы:


21

Если вы установили 64-разрядную версию QGIS в Windows и обнаружили, что персональные базы геоданных (* .mdb) больше не работают, то это решение может подойти; Я использую QGIS 2.8.1, а не 2.6, но я предполагаю, что проблема и, следовательно, решение одинаковы.

Основная проблема связана с этой ошибкой GDAL: проблема чтения MDB (64-битная версия)

Шаг 1

Загрузите 64-разрядную версию драйвера ODBC: Microsoft Access Database Engine 2010, распространяемый

Если у вас не установлена ​​32-битная версия Office, вы можете просто запустить исполняемый файл. Однако, если у вас установлена ​​32-разрядная версия Office, вам необходимо запустить исполняемый файл из командной строки, используя /passiveопцию

Установка распространяемого 64-разрядного Access Database Engine 2010 в пассивном режиме

Шаг 2

Найдите файл qgis.bat (мой, C:\OSGeo4W64\bin\qgis.batнапример, в).

Добавьте следующие две строки:

set OGR_SKIP=ODBC
set PGEO_DRIVER_TEMPLATE=DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=%%s

Шаг 3

Откройте QGIS и перетащите файл mdb на свое рабочее место.

Вуаля!


Это просто работает для меня на 64-битной QGIS 3.0.0 на Windows 8.1.
Брайан Фишер

7

При условии, что вы успешно установили Microsoft Access Database Engine 64 bit, вы можете:

Метод 1 (работает с QGIS 2)

добавьте следующие две строки:

set OGR_SKIP=ODBC
set PGEO_DRIVER_TEMPLATE=DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=%%s

в вашем qgis.bat / qgis-grass7.bat / qgis-ltr.bat / qgis-ltr-grass7.bat перед последней строкой, это обычно что-то вроде

start "QGIS" /B "%OSGEO4W_ROOT%"\bin\qqis...

[обратите внимание, что в значении переменной PGEO_DRIVER_TEMPLATE есть два знака процента]

Метод 2 (работает с QGIS 3)

В панели настроек QGIS -> Параметры | Система | Среду добавить следующие две переменные:

variable name: OGR_SKIP 
value: ODBC

variable name: PGEO_DRIVER_TEMPLATE 
value: DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=%s

и установите флажок «Использовать пользовательские переменные»

[обратите внимание, что в этом случае в значении переменной PGEO_DRIVER_TEMPLATE используется только один знак процента]

Метод 3 (работает как с QGIS 2, так и с QGIS 3)

На панели «Переменные среды» расширенных системных параметров Windows установите следующие две новые переменные как «Пользовательские переменные» или «Системные переменные»:

variable name: OGR_SKIP 
value: ODBC

variable name: PGEO_DRIVER_TEMPLATE 
value: DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=%s

[обратите внимание, что в этом случае в значении переменной PGEO_DRIVER_TEMPLATE используется только один знак процента]


Для меня это работает для ESRI .mdb, но я не уверен, также для Geomedia MDB? Кто-нибудь имеет опыт работы с такого рода файлами
Роберто

1

Предложенное решение прекрасно работает и на Windows 10. Только еще одно предложение для добавления двух строк в файл qgis.bat.

Две строки устанавливаются. Поэтому важно добавить строки перед началом команды.

Вероятно, это не понято, но если вы не будете осторожны, есть риск ошибиться.


Так как это самый последний ответ, я хочу прокомментировать, что он работает, но я могу только загрузить классы объектов (векторный слой), но я не вижу, как загрузить таблицы и отношения, содержащиеся в mdb. Наборы классов объектов также игнорируются.
Нанунга
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.