Otwieranie osobistej geobazy Esri (* .mdb) za pomocą QGIS?


12

Czy można otworzyć osobistą geobazę Esri (* .mdb; ArcGIS 10.2) w QGIS 2.6? Poprzednie wersje miały rację.


3
Próbowałeś tego i otrzymałeś błąd lub pytasz, czy jest dostępna opcja otwarcia ESRI PGDB w QGIS 2.6? Ta opcja jest dostępna w Warstwie > Dodaj warstwę > Dodaj warstwę wektorową > Baza danych > wybierz Typ osobistej GeoDatazy ESRI jako typ
Joseph

Czy używasz 64-bitowej wersji QGIS w systemie Windows?
nmtoken

Próbowałem to zrobić, ale nie pozwala mi zapisać pliku qgis.bat ze zmianami. Dowolny pomysł? Dzięki
NandoSC,

Odpowiedzi:


21

Jeśli zainstalowałeś 64-bitową wersję QGIS w systemie Windows i okaże się, że Personal GeoDatabases (* .mdb) nie działa już dla Ciebie, może to mieć zastosowanie; Używam QGIS 2.8.1 zamiast 2.6, ale zakładam, że problem, a zatem rozwiązanie jest takie samo.

Podstawowy problem związany jest z tym błędem GDAL: Problem z odczytem płyt MDB (64-bitowych)

Krok 1

Pobierz 64-bitową wersję sterownika ODBC: pakiet redystrybucyjny Microsoft Access Database Engine 2010

Jeśli nie masz zainstalowanej 32-bitowej wersji pakietu Office, możesz po prostu uruchomić plik wykonywalny. Jeśli jednak masz 32-bitową instalację pakietu Office, musisz uruchomić plik wykonywalny z wiersza polecenia, używając tej /passiveopcji

Instalowanie 64-bitowego silnika bazy danych Access 2010 do redystrybucji w trybie pasywnym

Krok 2

Znajdź plik qgis.bat (mój jest C:\OSGeo4W64\bin\qgis.batna przykład).

Dodaj następujące dwa wiersze:

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

Krok 3

Otwórz QGIS i przeciągnij plik mdb na swój obszar roboczy

Voila!


To właśnie działało dla mnie w 64-bitowej wersji QGIS 3.0.0 w systemie Windows 8.1.
Brian Fisher

7

Pod warunkiem, że pomyślnie zainstalowałeś 64-bitowy aparat bazy danych Microsoft Access, możesz:

Metoda 1 (działa z QGIS 2)

dodaj następujące dwa wiersze:

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

w twoim qgis.bat / qgis-grass7.bat / qgis-ltr.bat / qgis-ltr-grass7.bat przed ostatnim wierszem, zwykle jest to coś w rodzaju

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

[zwróć uwagę, że w wartości zmiennej PGEO_DRIVER_TEMPLATE występują dwa znaki procentowe]

Metoda 2 (działa z QGIS 3)

W panelu Ustawienia QGIS -> Opcje | System | Środowisko dodaj następujące dwie zmienne:

variable name: OGR_SKIP 
value: ODBC

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

i zaznacz pole wyboru „Użyj zmiennych niestandardowych”

[zwróć uwagę, że w tym przypadku w wartości zmiennej PGEO_DRIVER_TEMPLATE występuje tylko jeden procent]

Metoda 3 (działa zarówno z QGIS 2, jak i QGIS 3)

W panelu Zmienne środowiskowe w zaawansowanych ustawieniach systemu Windows ustaw następujące dwie nowe zmienne jako Zmienne użytkownika lub Zmienne systemowe:

variable name: OGR_SKIP 
value: ODBC

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

[zauważ, że również w tym przypadku jest tylko jeden znak procentowy w wartości zmiennej PGEO_DRIVER_TEMPLATE]


Dla mnie to działa dla ESRI .mdb, ale nie jestem pewien również dla geomedia mdb? Każdy ma doświadczenie w tego rodzaju plikach
Roberto Marzocchi

1

Proponowane rozwiązanie działa dobrze również w systemie Windows 10. Tylko kolejna sugestia dodania dwóch linii do pliku qgis.bat.

Dwie linie ustawiają się. Dlatego ważne jest, aby dodać wiersze przed rozpoczęciem polecenia.

Prawdopodobnie jest niezrozumiany, ale jeśli nie będziesz ostrożny, istnieje ryzyko pomyłki.


Ponieważ jest to najnowsza odpowiedź, chcę skomentować, że to działa, ale mogę tylko załadować klasy elementów (warstwę wektorową), ale nie widzę, jak ładować tabele i relacje zawarte w mdb. Zestawy danych funkcji są również ignorowane.
nanunga
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.