2012-05-11 18 views
5

पर पायथन के साथ एक एक्सेस डेटाबेस (.mdb) का उपयोग करके मैं उबंटू पर .mdb तक पहुंचने के लिए pyodbc का उपयोग करने का प्रयास कर रहा हूं। मैं इस लिंकउबंटू

Query crashes MS Access

मैं स्थापित किया है pyodbc, unixodbc पर मेरी प्रगति आधारित किया है अब तक, और unixodbc-देव

मेरे कोड इस तरह दिखता है:

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)') 

क्या कोई भी एच किसी भी विचार है? किसी भी मदद की बहुत सराहना की जाएगी

धन्यवाद!

+0

मैं लिनक्स से परिचित नहीं हूं, लेकिन विंडोज़ पर, यह त्रुटि यह होगी कि आपने नियंत्रण कक्ष -> व्यवस्थापकीय उपकरण -> ओडीबीसी कनेक्शन में ओडीबीसी कनेक्शन स्थापित नहीं किया है। और आप कनेक्शन में डेटा स्रोत नाम (DNS) पास करेंगे, फ़ाइल का नाम नहीं (जो कि DNS में है)। – HardCode

+0

मुझे लगता है क्योंकि मैं एक .mdb का उपयोग कर रहा हूं यह सब स्थानीय है, इसलिए मुझे एक DNS की आवश्यकता नहीं है। क्या यह सही लगता है? मैं इसे इस पृष्ठ के शीर्ष पर उदाहरण पर आधारित कर रहा हूं https://code.google.com/p/pyodbc/wiki/ConnectionStrings – mythander889

+0

मुझे लगता है कि आपको अभी भी एमएस एक्सेस के लिए ओडीबीसी ड्राइवर स्थापित करने की आवश्यकता है। 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

मैं इस ड्राइवर क्या पता से "माइक्रोसॉफ्ट एक्सेस ड्राइवर (* .mdb)" एक माइक्रोसॉफ्ट मेजबान पर ही उपलब्ध है, जब से तुम कर रहे हैं उबंटू पर, यह काम नहीं करेगा।

+0

हां मैं अभी तक इस उत्तर के साथ हूं। अगर किसी के पास समाधान है तो कृपया साझा करें। –