我继承了一些遗留代码,此时我只需要让它工作 - 只有它有这段代码:
import ODBC.Windows, os
DBconn = ODBC.Windows.connect("DRG3","sa","")
cursor = DBconn.cursor()
我已经将pyODBC,pyWin32和mxODBC添加到我的Python 2.7安装中,但仍然无效。这似乎是mxODBC代码,但它们的安装说明很模糊,现在看起来像是付费产品(尽管可能不是在写这篇文章的时候,大约是2001年)。即使在安装之后,直到我将相关文件从Python27 \ Lib \ site-packages \ mx \ mxODBC \复制到Python27 \ Lib之后才会发生变化,甚至在重复搜索所需文件并将其添加到\ Lib之后最后得到'没有名为Windows的模块'。
最重要的是,我希望这能以最少的努力连接,以便继续前进。我之前从未使用过python,所以我很感激任何帮助。我不承诺使用mxODBC,但是如果我使用其他东西,我需要知道如何更改代码。
答案 0 :(得分:1)
首先,我很抱歉这是你对Python的介绍。陷入深渊并不好玩。话虽如此,我有一些言论,我希望这些言论会有所帮助。
您尝试运行的程序是旧。你提到了2001年(在我看来,这让人联想到石器时代的人物),所以这将是Python 2.0或2.1。现在,我并不太关心语言本身,因为保持核心语言和标准库向后兼容是维护者的主要优先事项,但对于应用程序需要的任何其他库可能不是这样。 API可以在11年内发生很大变化,一些图书馆可能会被完全抛弃(这可能意味着有更好的选择,但仍然如此)。我在这里所说的就是你可能需要在这里耐心等待。
如果这个程序真的使用mxODBC作为它的数据库连接器(当然看起来那样),请注意它有一些自己的依赖。 (参见Egenix网站)。顺便说一下,据我所知,mxODBC一直是商业产品,虽然确切的许可可能已经改变。
此外,我认为导入语句应为:
import mx.ODBC.Windows, os
这意味着connect语句应为:
mx.ODBC.Windows.connect("DRG3","sa","")
像你一样在\ Lib目录中移动Python文件可能会破坏一些东西。你可能想撤消它。
我也有点担心你要连接的数据源。如果它真的是ODBC,你可能在设置它或使它工作时遇到问题,但这取决于你运行的Windows的风格。很长一段时间以来,微软一直在弃用ODBC,64位Windows确实在这里打破了一些东西。最近看起来,他们已经回过头来了,但我不确定到目前为止究竟是什么造成的。
如果由于某种原因mxODBC不适合您,请尝试 pyodbc 。你需要构建一个合适的连接字符串才能正常工作,但是有足够的例子可以在互联网上浮动,让你开始。
我个人会选择列表中的最后一个选项,但这只是因为我对pyodbc有一些很好的经验,而且根本没有使用mxODBC的经验。俗话说:你的里程可能会有所不同。
答案 1 :(得分:0)
您可以尝试使用pyodbc:
import pyodbc
DBconn = pyodbc.connect("DSN=DRG3;UID=sa;PWD=")
cursor = DBconn.cursor()