簡體   English   中英

無法使用 64 位 Python 3.6.ODBC 驅動程序錯誤連接到 64 位 MsAccess 數據庫

[英]cannot connect to 64bit MsAccess database with 64bit Python 3.6.ODBC Driver Error

我剛剛在一台新電腦上安裝了 64 位 microsoft office,還安裝了 64 位 python 3.6。

我正在嘗試使用我的 python 腳本連接到訪問數據庫,但是我不斷收到以下錯誤,這表明我使用的是 32 位 ODBC 驅動程序而不是 64 位驅動程序?

關於如何在無需安裝 32 位 MS Office 和 32 位 Python 的情況下進行連接的任何想法?

這是我收到的錯誤消息:

cnxn = pyodbc.connect(connstr) pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] 未找到數據源名稱且未指定默認驅動程序 (0) (SQLDriverConnect)')

這是我的代碼:

import pyodbc
connStr = (
          r"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};"
          r"DBQ=C:\Documents\Test.accdb;"
          )
cnxn = pyodbc.connect(connStr)
cursor = cnxn.cursor()
cursor.execute("SELECT * FROM Test")

我個人沒有處理過 64 位 MS Office 應用程序或驅動程序,但是Access Database Engine 2016 Redistributable包含一個 64 位版本,包括 ODBC 驅動程序(我認為)。

就此而言,即使是Access Database Engine 2010 Redistributable也有 64 位版本。

您還可以使用 ODBC 數據源管理器來創建和管理 DSN(數據源名稱)。 32 位和 64 位程序有單獨的管理員程序。 在我的 Windows 10 機器上,快捷方式位於“Windows 管理工具”下,並標有“ODBC 數據源(32 位)”和“ODBC 數據源(64 位)”。

通過定義 DNS,您可以指定使用哪個驅動程序打開數據庫。 但是您還必須能夠在您的連接參數中引用 DNS,遺憾的是我不熟悉如何在您的 python 程序中執行此操作。 我至少希望這給出了一個開始的暗示。

暫無
暫無

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

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