2012-05-11 4 views
5

pyodbc를 사용하여 Ubuntu에서 .mdb에 액세스하려고합니다. 나는 pyodbc, 인 unixODBC 설치 한Ubuntu에서 Python과 Access 데이터베이스 (.mdb) 사용

Query crashes MS Access

이 링크를 지금까지 나의 진행 상황을 기반으로하며 인 unixODBC-DEV 한

내 코드는 다음과 같습니다

import csv 
import pyodbc 

MDB = 'URY.mdb' 
DRV ='Microsoft Access Driver (*.mdb)' 
PWD = 'pass' 

conn = pyodbc.connect('DRIVER=%s;DBQ=%s;PWD=%s' % (DRV,MDB,PWD)) 
curs = conn.cursor() 

언제 실행하면 다음과 같은 오류 메시지가 나타납니다.

Traceback (most recent call last): 
    File "mdbscraper.py", line 8, in <module> 
    conn = pyodbc.connect('DRIVER=%s;DBQ=%s;PWD=%s' % (DRV,MDB,PWD)) 
pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found,   and no default driver specified (0) (SQLDriverConnect)') 

아이디어가 있습니까? 어떤 도움을 많이 주시면 감사하겠습니다.

Thank you!

+0

Linux에 익숙하지 않지만 Windows에서이 오류는 제어판 -> 관리 도구 -> ODBC 연결에서 ODBC 연결을 설정하지 않았 음을 의미합니다. 또한 연결에 데이터 소스 이름 (DNS)을 전달해야하며 파일 이름 (DNS에 있음)이 아닙니다. – HardCode

+0

저는 .mdb를 사용하고 있기 때문에 모든 로컬이므로 DNS가 필요하지 않다고 생각합니다. 그게 맞는 것 같니? 나는이 페이지의 맨 위에있는 예제를 기반으로합니다. https://code.google.com/p/pyodbc/wiki/ConnectionStrings – mythander889

+0

MS Access 용 ODBC 드라이버를 설치해야합니다. Easysoft는 하나를 판매합니다. http://www.easysoft.com/products/data_access/odbc-access-driver/index.html 아마도 mdbtools에는 하나가 포함되어 있지만 제한적이라고 기술되어 있습니다. http://mdbtools.sourceforge.net/install/x90.htm – HansUp

답변

0
import pyodbc 
DBfile = '/data/MSAccess/Music_Library.mdb' 
conn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb)};DBQ='+DBfile) 
cursor = conn.cursor() 
SQL = 'SELECT Artist, AlbumName FROM RecordCollection ORDER BY Year;' 

for row in cursor.execute(SQL): # cursors are iterable 
print row.Artist, row.AlbumName 

cursor.close() 
conn.close() 

내가이 드라이버를 알고에서

3

... ... 사용의 공식 예제가있다 "Access 드라이버 (* .MDB)"당신이 있기 때문에, 마이크로 소프트 호스트에서만 사용할 수 있습니다 우분투에서는 작동하지 않습니다.

+0

예 저는 지금까지이 대답을 가지고 있습니다. 누군가 해결책을 가지고 있다면 공유하십시오. –