制作'所需的最低限度;导入ODBC.Windows';在Python中工作

制作'所需的最低限度;导入ODBC.Windows';在Python中工作,python,odbc,Python,Odbc,我继承了一些遗留代码,现在我只需要让它工作-只有它有以下代码: import ODBC.Windows, os DBconn = ODBC.Windows.connect("DRG3","sa","") cursor = DBconn.cursor() 我已经将pyODBC、pyWin32和mxODBC添加到我的python2.7安装中,但仍然没有任何效果。这似乎是mxODBC代码,但它们的安装说明很模糊,而且现在看起来像是付费产品(尽管大约在2001年编写时可能不是)。即使在安装之后,在我将

我继承了一些遗留代码,现在我只需要让它工作-只有它有以下代码:

import ODBC.Windows, os
DBconn = ODBC.Windows.connect("DRG3","sa","")
cursor = DBconn.cursor()
我已经将pyODBC、pyWin32和mxODBC添加到我的python2.7安装中,但仍然没有任何效果。这似乎是mxODBC代码,但它们的安装说明很模糊,而且现在看起来像是付费产品(尽管大约在2001年编写时可能不是)。即使在安装之后,在我将相关文件从Python27\Lib\site packages\mx\mxODBC\复制到Python27\Lib之前没有任何更改,即使在反复查找此所需文件并将其添加到\Lib之后,我最终还是得到了“没有名为Windows的模块”


底线是,我希望用最少的努力来连接,这样我就可以继续前进。我以前从未使用过python,因此我非常感谢您的帮助。我不打算使用mxODBC,但如果我使用其他东西,我需要知道如何更改代码。

首先,很抱歉,这必须是您对Python的介绍。被扔到深水区一点也不好玩。话虽如此,我有几点意见,希望对大家有所帮助

  • 您试图运行的程序已过时。您提到了2001年(在我的脑海中,这让人联想到石器时代的人),所以这将是Python 2.0或2.1。现在,我不太关心语言本身,因为保持核心语言和标准库向后兼容是维护人员的一个主要优先事项,但对于应用程序需要的任何其他库来说可能都不是这样。API在11年内会有很大的变化,一些库可能会被完全抛弃(这可能意味着有更好的替代方案,但仍然如此)。我想说的是,你在这里可能需要耐心

  • 如果这个程序真的使用mxODBC作为它的数据库连接器(当然看起来是这样的),请注意它有自己的一些依赖项。(见网站)。顺便说一句,据我所知,mxODBC一直是一种商业产品,尽管确切的许可证可能已经改变

  • 此外,我认为进口声明应为:

    import mx.ODBC.Windows, os
    
    mx.ODBC.Windows.connect("DRG3","sa","")
    
    这意味着connect语句应为:

    import mx.ODBC.Windows, os
    
    mx.ODBC.Windows.connect("DRG3","sa","")
    
  • 像您那样在\Lib目录中移动Python文件可能会破坏某些功能。你可能想撤销它

  • 我也有点担心您想要连接到的数据源。如果它真的是ODBC,您可能会在设置或使其工作时遇到问题,但这取决于您运行的Windows的风格。很长一段时间以来,微软一直在反对ODBC,64位Windows确实打破了这一点。最近,他们似乎又回到了过去,但我不确定,到目前为止,到底是什么导致了这样的结果

  • 如果出于某种原因mxODBC不适合您,请尝试pyodbc。您需要构造一个合适的连接字符串才能使其正常工作,但是internet上有足够多的示例可以帮助您开始


  • 我个人倾向于选择列表中的最后一个选项,但这仅仅是因为我对pyodbc有过一些很好的经验,而对mxODBC完全没有经验。正如俗话所说:你的里程数可能会有所不同。

    你可以用pyodbc试试:

    import pyodbc
    DBconn = pyodbc.connect("DSN=DRG3;UID=sa;PWD=")
    cursor = DBconn.cursor()