Več

Uporaba Pythona za razlikovanje osebnih baz podatkov in zbirk podatkov MS Access

Uporaba Pythona za razlikovanje osebnih baz podatkov in zbirk podatkov MS Access


Moram navesti strežnikove geodatazne baze, jih analizirati in obdelati. Moji uporabniki pa ustvarjajo tako osebne zbirke geodetalnih podatkov kot baze podatkov MS Access.

Seznammdbdatoteke poroča o obeh vrstah baz podatkov, rad bi seznam zožil na geosamo zbirke podatkov. Lastnost logičnega delovnega prostorais_geodatabasebi bilo točno tisto, kar moram uporabiti, saj kaže, ali je baza podatkov prostorsko omogočena ali ne. Ta lastnost je žal na voljo samo za zbirke podatkov SDE.

Uporabljam ArcGIS 10.0. in spodnji scenarij. Izbira je bila narejena na seznamumdbdatoteke s priponoos.walk ()raje kotarcpy.ListWorkspaces ()zaradi hitrosti postopka in kerListWorkspacesvseeno pridobi baze podatkov MS Access. Kako lahko spremenim svoj skript za poročanje samo osebne baze podatkov geodata, in ne ravno podatkovne baze MS Access?

za pot, poddatoteke, datoteke v os.walk (analizirana_koren_mapa): za x v datotekah: če je x.lower (). ENDWITH (". mdb") == True: ext_mdb.append (os.path.join (pot, x ))

Preverite z odbc in poiščite, če baza podatkov vsebuje tabelo, ki se začne z GDB_

import pyodbc db_file = "C: /path/to/my/database/MyDataBase.mdb" user = "password =" odbc_conn_str = 'DRIVER = {Gonilnik Microsoft Access (* .mdb)}; DBQ =% s; UID =% s; PWD =% s '%  (db_file, uporabnik, geslo) cnxn = pyodbc.connect (odbc_conn_str) cursor = cnxn.cursor () if cursor.tables (table =' GDB_GeomColums '). fetchone (): print (' To je ArcGIS Personal Geodatabase ') del cursor cnxn.close ()

Poglej si posnetek: Donate Blood System on Microsoft Access