2012-10-09 175 views
2

我寫了一個程序,它通過pyodbc連接到Access ,它非常高興。請幫幫我。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)') 

回答

0

這可能有所幫助。

import pyodbc 

# Connect to your access database file 

DBfile = 'Filename.mdb' # Let your file name <Filename> and access extension .mdb 
conn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb)};DBQ='+DBfile) # user/password can be used 
cur = conn.cursor() 

# Create new table in database 

cur.execute ('CREATE TABLE CLIENTS (ID INTEGER, COMPANY STRING)') 
conn.commit() 

cur.close() 
conn.close() 
2

您指定的驅動器名稱...

DRIVER={Microsoft Access Driver (*.accdb)}

...不正確。沒有該名稱的ODBC驅動程序。希望打開舊.mdb數據庫文件的32位應用程序可以使用

Driver={Microsoft Access Driver (*.mdb)}

從64位應用程序打開一個.mdb文件,或者從任何應用程序中打開一個.accdb文件,你需要使用

Driver={Microsoft Access Driver (*.mdb, *.accdb)}