Я пытаюсь получить доступ к базе данных Access (.mdb
), используя pyodbc
.pyodbc Доступ к базе данных Выдача разрешений MSysObjects
Я могу подключить к нему
выполнить точнуюconnection = pyodbc.connect(driver='{Microsoft Access Driver (*.mdb)}', dbp=path, pwd=password)
Но я не могу запросить MSysObjects
, чтобы получить список его tables-
cursor = connection.cursor()
cursor.execute('select * from MSysObjects where Type=1 and Flags=0')
Это дает мне-
Record(s) cannot be read; no read permission on 'MSysObjects'. (-1907) (SQLExecDirectW)
Обход, похоже, потому, что база данных была «защищена».
Я не могу запустить Access, чтобы изменить его. Есть ли где-нибудь, что я могу решить эту программу? Нужно ли мне знать пользователей базы данных или что-то в этом роде?
I've seen a workaround in Visual Basic - Есть ли способ, которым я мог бы адаптировать это в Python? Я бы предположил, что мне нужна другая библиотека (OLEDB).
Спасибо!
Вы можете не получить схему из соединения? Таблицы системы Access не поддерживаются и не подходят для этого. – Fionnuala
Возможно: http://stackoverflow.com/questions/4539254/how-to-get-datatypes-of-specific-fields-of-an-access-database-using-pyodbc – Fionnuala
Благодаря @ Remou - это выглядит очень полезно. Я смотрю на него сейчас – user1458476