python - Access 数据库连接错误

标签 python sql database ms-access ms-access-2007

我编写了通过pyodbc连接到Access的程序 对此它感到非常高兴。请帮助我。

import pyodbc
#import kinterbasdb
import firebirdsql
import os, sys
import json,sqlite3,sql
sys.version_info
s1='''
create table CLIENTS
    (
       ID    INTEGER NOT NULL,
       COMPANY   VARCHAR(50),
       "LAST NAME"   VARCHAR(50),
       "FIRST NAME"   VARCHAR(50),
       "E-MAIL ADDRESS"   VARCHAR(50),
       "JOB TITLE"   VARCHAR(50),
       "BUSINESS PHONE"   VARCHAR(25),
       "HOME PHONE"   VARCHAR(25),
       "MOBILE PHONE"   VARCHAR(25),
       "FAX NUMBER"   VARCHAR(25),
       ADDRESS   BLOB SUB_TYPE 1,
       CITY   VARCHAR(50),
       "STATE/PROVINCE"   VARCHAR(50),
       "ZIP/POSTAL CODE"   VARCHAR(15),
       "COUNTRY/REGION"   VARCHAR(50),
       "WEB-SITE"   VARCHAR(25),
       NOTES   BLOB SUB_TYPE 1,
       INCLUDING   BLOB,
       CONSTRAINT PK_CLIENTS_ID PRIMARY KEY(ID)
    );
'''
s2='''create ascending index IDX_CLIENTS_CITY on CLIENTS (CITY);'''
#os.remove('D:/ThirdTask/test1.fdb')
conn=firebirdsql.create_database(host='localhost', database='/test1.fdb', user='sysdba', password='masterkey')
#con=firebirdsql.connect(host='localhost',database='D:/ThirdTask/test1.fdb', user='sysdba', password='masterkey')
cur=conn.cursor()
cur.execute(s1)
#cur.execute(s2)
conn.commit()
conAcc = pyodbc.connect('DRIVER={Microsoft Access Driver (*.accdb)};DBQ=Northwind.accdb')
conn.close()

结果我收到了一个错误 这让我很困惑。请帮帮我。 我不知道错误的原因是什么

Traceback (most recent call last):
  File "D:\ThirdTask\connecttwo.py", line 39, in <module>
    conAcc = pyodbc.connect('DRIVER={Microsoft Access Driver (*.accdb)};DBQ=Northwind.accdb')
Error: ('IM002', '[IM002] [Microsoft][\xc4\xe8\xf1\xef\xe5\xf2\xf7\xe5\xf0 \xe4\xf0\xe0\xe9\xe2\xe5\xf0\xee\xe2 ODBC] \xc8\xf1\xf2\xee\xf7\xed\xe8\xea \xe4\xe0\xed\xed\xfb\xf5 \xed\xe5 \xed\xe0\xe9\xe4\xe5\xed \xe8 \xed\xe5 \xf3\xea\xe0\xe7\xe0\xed \xe4\xf0\xe0\xe9\xe2\xe5\xf0, \xe8\xf1\xef\xee\xeb\xfc\xe7\xf3\xe5\xec\xfb\xe9 \xef\xee \xf3\xec\xee\xeb\xf7\xe0\xed\xe8\xfe (0) (SQLDriverConnect)')

最佳答案

您指定的驱动程序名称...

DRIVER={Microsoft Access 驱动程序 (*.accdb)}

...不正确。没有具有该名称的 ODBC 驱动程序。想要打开较旧的 .mdb 数据库文件的 32 位应用程序可以使用

驱动程序={Microsoft Access 驱动程序 (*.mdb)}

要从 64 位应用程序打开 .mdb 文件,或从任何应用程序打开 .accdb 文件,您需要使用

驱动程序={Microsoft Access 驱动程序(*.mdb、*.accdb)}

关于python - Access 数据库连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12800101/

相关文章:

python - 在 flask 模板 jinja2 中显示循环

python - 将python路径放在windows机器上

python - 为什么要删除文件末尾的导入?

php - Sql 字符串查询不起作用

android - 升级数据库版本时,数据不会与 Room Persistence Library 保持一致

mysql - 数据库如何在 B-Tree/B+Tree 内部存储数据

Python——生成器在迭代器之间散布值——我这样做正确吗?

sql - 在SQL中按子字符串查找字符串的最快方法?

php - 如何在mysql 5存储过程中检查查询结果是否为空?

php - Zend 子查询参数