Как извлечь содержимое столбцов в базе данных Microsoft Access с помощью Python - PullRequest
0 голосов
/ 07 октября 2018

Я только начинаю изучать Python, и мне было интересно, кто-нибудь может помочь мне получить данные столбца с помощью Python?Я искал около 3 часов.

код:

import pyodbc


conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, 
*.accdb)};DBQ=C:\Users\jgp22\Documents\Database11.accdb;')
cursor = conn.cursor()
cursor.execute('select * from information')


for row in cursor.fetchall():
                  print(row)

ошибка:

Traceback (most recent call last):
File "C:\Users\jgp22\Desktop\Python\Data.py", line 3, in <module>
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, 
*.accdb)};DBQ=C:\Users\jgp22\Documents\Database11.accdb;')
pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] 
Data source name not found and no default driver specified (0) 
(SQLDriverConnect)')

ошибка № 2:

Traceback (most recent call last):
File "C:\Users\jgp22\Desktop\Python\GrabData.py", line 3, in <module>
conn = pyodbc.connect(r'DSN=MAD')
pyodbc.Error: ('HY000', "[HY000] [Microsoft][ODBC Microsoft Access Driver] 
Cannot open database '(unknown)'.  It may not be a database that your 
application recognizes, or the file may be corrupt. (-1028) 
(SQLDriverConnect); [HY000] [Microsoft][ODBC Microsoft Access Driver] Cannot 
open database '(unknown)'.  It may not be a database that your application 
recognizes, or the file may be corrupt. (-1028)")

1 Ответ

0 голосов
/ 07 октября 2018

Создать именованный системный DSN

  1. Перейти к ODBC Admin (убедитесь, что он 64-битный)
  2. Нажмите системный DSN
  3. Создать именованный DSNкоторый указывает на 'C: \ Users \ jgp22 \ Documents \ Database11.accdb' в этом примере позволяет использовать myDsn
  4. Использовать строку подключения DSN=myDsn, где myDsn это имя, которое вы дали в шаге 3. Не беспокойтесь об информации о драйвере или пути.Все это сохраняется вместе с записью DSN в системе.

Пути администратора источника данных ODBC

Чтобы настроить DSN для 32-разрядного приложения , необходимо использовать:

%WINDIR%\SysWOW64\odbcad32.exe

и для 64-разрядного приложения вы должны использовать:

%WINDIR%\System32\odbcad32.exe

С https://robertoschiabel.wordpress.com/2008/02/28/windows-x64-32bit-odbc-vs-64bit-odbc/amp/

Установка 64-разрядного драйвера БД Access

Драйвер для доступа к файлам accdb может быть недоступен в вашей системе.В этом случае вам нужно будет установить драйвер от Microsft.Драйвер accdb доступен для загрузки у Microsoft здесь:
https://microsoft.com/en-US/download/details.aspx?id=13255

Использование 32-битного Python (если драйвер Access DB недоступен в 64-битной версии)

Другая альтернативаесли у вас уже есть 32-битный ODBC-драйвер accdb, установленный в вашей системе, стоит использовать 32-битную версию Python.Примером среды такого типа может быть, если у вас уже установлена ​​32-разрядная версия Office.
Установите 32-разрядную версию Windows Python 3.7.0 из:
https://www.python.org/ftp/python/3.7.0/python-3.7.0.exe
При использовании32-битная версия python, вы должны получить доступ к DSN под 32-битным администратором источника данных ODBC.

Подключиться к именованному DSN

import pyodbc

conn = pyodbc.connect(r'DSN=myDsn')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...