Вопрос по pyodbc, ubuntu, python, ms-access – Использование базы данных Access (.mdb) с Python в Ubuntu [дубликат]

6

This ques#ion already has an answer here:

Working wi#h an Access da#abase in Py#hon on non-Windows pla#form (Linux or Mac) 4 answers

Я пытаюсь использовать pyodbc для доступа к .mdb в Ubun#u. Я пока основывал свой прогресс на этой ссылке

Запрос вылетает MS Access

Я установил pyodbc, unixodbc и unixodbc-dev

Мой код выглядит так:

&l#;code&g#;impor# csv
impor# pyodbc

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

conn = pyodbc.connec#('DRIVER=%s;DBQ=%s;PWD=%s' % (DRV,MDB,PWD))
curs = conn.cursor()
&l#;/code&g#;

Когда я запускаю его, я получаю это сообщение об ошибке:

&l#;code&g#;Traceback (mos# recen# call las#):
  File "mdbscraper.py", line 8, in &l#;module&g#;
    conn = pyodbc.connec#('DRIVER=%s;DBQ=%s;PWD=%s' % (DRV,MDB,PWD))
pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Da#a source name no# found,         and no defaul# driver specified (0) (SQLDriverConnec#)')
&l#;/code&g#;

У кого-нибудь есть какие-либо идеи? Любая помощь будет очень высоко ценится

Спасибо!

Я никогда не пробовал это. Смотрите их руководство по началу работы.easysoft.com/products/data_access/odbc-access-driver/… HansUp
Спасибо. Я нашел нужный драйвер на их сайте в качестве tar. Ты знаешь, где мне нужно это поставить? mythander889
Я думаю, вам все еще нужно установить драйвер ODBC для MS Access. Easysoft продает один.easysoft.com/products/data_access/odbc-access-driver/index.html  Предположительно, mdbtools включает один, но он описан как ограниченный.mdbtools.sourceforge.net/install/x90.htm HansUp
Я думаю, потому что я использую .mdb, он все локальный, поэтому мне не нужен DNS. Это звучит правильно? Я основываюсь на примере в верхней части этой страницы.code.google.com/p/pyodbc/wiki/ConnectionStrings mythander889
Я не знаком с Linux, но в Windows эта ошибка будет означать, что вы не установили соединение ODBC в Панели управления - & gt; Инструменты администрирования - & gt; Соединения ODBC. И вы передаете имя источника данных (DNS) в соединении, а не имя файла (который находится в DNS). HardCode

Ваш Ответ

2   ответа
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()

Есть официальный пример использования ...

4

Из того, что мне известен этот драйвер "Microsoft Access Driver (* .mdb)" доступен только на хосте Microsoft, так как вы работаете в Ubuntu, он не будет работать.

Да, я с этим ответом до сих пор. Пожалуйста, поделитесь, если у кого-то есть решение.

Похожие вопросы