簡體   English   中英

Pyodbc錯誤-Python到MS Access

[英]Pyodbc Error - Python to MS Access

我在Windows 7,Python 2.7和Microsoft Access 2013上運行。

當我嘗試運行時:

import pyodbc
conn_string = '''
DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};
UID=admin;
UserCommitSync=Yes;
Threads=3;
SafeTransactions=0;
PageTimeout=5;
MaxScanRows=8;
MaxBufferSize=2048;
FIL=MS Access;
DriverId=25;
DefaultDir=C:\Users\jseinfeld;
DBQ=C:\Users\jseinfeld\Desktop\Databasetest1.accdb;
'''
connection = pyodbc.connect(conn_string)

我收到以下錯誤消息:

Error: ('HY000', "[HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x29dc Thread 0x113c DBC 0x8a3ed48    

Jet'. (63) (SQLDriverConnect); [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x29dc Thread 0x113c DBC 0x8a3ed48

Jet'. (63); [HY000] [Microsoft][ODBC Microsoft Access Driver] Not a valid file name. (-1044); [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x29dc Thread 0x113c DBC 0x8a3ed48 

Jet'. (63); [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x29dc Thread 0x113c DBC 0x8a3ed48

Jet'. (63); [HY000] [Microsoft][ODBC Microsoft Access Driver] Not a valid file name. (-1044)")

我意識到有關Pyodbc和MS Access的問題很多。 我已經執行了以下操作:

1)確保我具有64位Python和64位MS Access

2)授予對HKEY_LOCAL_MACHINE \\ SOFTWARE \\ ODBC注冊表項的帳戶訪問權限

https://support.microsoft.com/en-us/kb/295297

在python中打開Access數據庫時出錯

來自Access ODBC的“常規錯誤,無法打開注冊表項臨時(易失)...”

3)嘗試確保我具有有效的連接字符串https://stackoverflow.com/questions/6469545/python-connecting-to-a-database-with-pyodbc-not-working# =

4)當我嘗試運行此代碼時,Access數據庫未打開。 我已重新啟動計算機,但仍收到此錯誤。

請讓我知道是否還有其他可以嘗試的操作。

從僅具有DRIVERDBQ屬性且沒有嵌入式換行符的簡單連接字符串開始...

conn_string = r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\Users\jseinfeld\Desktop\Databasetest1.accdb;'

一旦使用了最簡單的連接字符串,就可以根據需要添加和測試其他連接屬性。

除了HansUp的答案之外,我還使用以下技術來構建連接字符串,而無需嵌入換行符,這些換行符對於我們人類仍然很容易理解:

conn_string = (
    r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
    r'DBQ=C:\Users\jseinfeld\Desktop\Databasetest1.accdb;')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM