【问题标题】:How to connect to MS Access 97 (with workgroup mdw) database using pyodbc如何使用 pyodbc 连接到 MS Access 97(使用工作组 mdw)数据库
【发布时间】:2015-10-02 00:55:44
【问题描述】:

在带有 pyodbc 的 Python 脚本中,我试图连接到我们网络上仍在使用的 Access 97 数据库,但我无法让连接(或连接字符串)正常工作。

我不断收到以下错误:

   pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnectW)')

这是我的连接字符串,由于上述错误而失败:

conn = pyodbc.connect('Driver={Microsoft Access Driver (.mdb)};Provider=Microsoft.Jet.OLEDB.4.0;Password=mypassword;User ID=myusername;dbq=\\fileserver\\conta\\locationdir\\mydatabase_be.mdb;Persist Security Info=True;Jet OLEDB:System database=\\FILESERVER\\backend\\mdw\\system.mdw')

如您所见,此连接需要使用系统数据库(工作组 - mdw)。数据库在网络存储上。

我正在使用 Python 2.7。

有人可以帮忙吗?

编辑:在连接字符串中,反斜杠应该是双反斜杠。似乎只显示了一个反斜杠。

【问题讨论】:

    标签: python pyodbc ms-access-97


    【解决方案1】:

    好的,我整理好了。我的解决方案基于以下 sn-p (只是语法正确的问题):

    strConnection = (r"Driver={Microsoft Access Driver (*.mdb)};"
        r"Dbq=C:\\VC Projects\\ADO\\Samples\\AdoTest\\dbTestSecurity.mdb;"
        r"SystemDB=C:\\Program Files\\Microsoft Office\\Office\\SYSTEM.mdw;"
        r"Uid=Carlos Antollini;Pwd=carlos")
    conn = pyodbc.connect(strConnection)
    #your code
    

    在此web-page 中找到解决方案

    希望这对其他人有用。

    【讨论】:

      【解决方案2】:

      我发现你必须使用 python 32 位——不是因为数据库是 32 位,而是因为 Access97 太旧了,你必须使用旧的 32 位 odbc 驱动程序而不是 python 3.9 64 位使用的新的 64 位驱动程序窗户 10

      【讨论】:

      • 是的,32 位 Python 和 Microsoft Access Driver (.mdb)(“Jet”)32 位驱动程序。但是,这仍然不是万无一失的,例如,here
      猜你喜欢
      • 2019-06-11
      • 2011-09-17
      • 1970-01-01
      • 2015-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-01
      • 1970-01-01
      相关资源
      最近更新 更多