pyodbc
을 사용하여 Access 데이터베이스 (.mdb
)에 액세스하려고합니다.pyodbc 데이터베이스 액세스 MSysObjects 사용 권한 문제
이
connection = pyodbc.connect(driver='{Microsoft Access Driver (*.mdb)}', dbp=path, pwd=password)
를를 미세하지만 나는 그것의 테이블 - 목록을 가져올 수 MSysObjects
를 쿼리 할 수 없습니다에 내가 연결할 수
cursor = connection.cursor()
cursor.execute('select * from MSysObjects where Type=1 and Flags=0')
은 ME-에게
Record(s) cannot be read; no read permission on 'MSysObjects'. (-1907) (SQLExecDirectW)
을 제공합니다
주위를 둘러 보면 데이터베이스가 "보호"되어있는 것 같습니다.
변경하려면 Access를 실행할 수 없습니다. 이 부분을 프로그램 적으로 해결할 수 있습니까? 데이터베이스 사용자 나 그와 비슷한 것을 알아야합니까?
I've seen a workaround in Visual Basic- 거기에 파이썬에서 적응할 수있는 방법이 있습니까? 나는 다른 라이브러리 (OLEDB)가 필요하다고 생각한다.
감사합니다.
(신용)
아마이 코딩의 깨끗한있는 방법은import pyodbc
connection = pyodbc.connect(driver='{Microsoft Access Driver (*.mdb)}', dbp=path, pwd=password)
cursor = connection.cursor()
tableNames = [x[2] for x in cursor.tables().fetchall() if x[3] == 'TABLE']
,하지만 난 서둘러 해요 :
는
당신이 연결의 스키마를 가져올 수 없습니다 :
아이디어는 나중에 열 이름이 목록에 데이터 튜플을 추가 할 수있다? 액세스 시스템 테이블은 지원되지 않으며 실제로는 적합하지 않습니다. – Fionnuala
아마도 : http://stackoverflow.com/questions/4539254/how-to-get-datatypes-of-specific-fields-of-an-access-database-using-pyodbc – Fionnuala
감사합니다. Remu- 매우 유용합니다. 나는 지금 그것을보고있다. – user1458476