“进口”所需的最低限度ODBC.Windows'在Python中工作

2024-09-29 06:24:42 发布

您现在位置:Python中文网/ 问答频道 /正文

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

import ODBC.Windows, os
DBconn = ODBC.Windows.connect("DRG3","sa","")
cursor = DBconn.cursor()

我已经在python2.7安装中添加了pyODBC、pyWin32和mxODBC,但仍然没有任何效果。这似乎是mxODBC代码,但它们的安装说明很模糊,现在似乎是一个付费产品(尽管它可能不是在编写时,大约在2001年)。即使在安装之后,直到我将相关文件从Python27\Lib\site packages\mx\mxODBC\复制到Python27\Lib之前,也没有任何变化,甚至在反复寻找为此所需的文件并将它们添加到\Lib之后,我终于得到了“没有名为Windows的模块”。在

最重要的是,我想用最少的努力让我继续前进。我以前从来没有用过python,所以我很感激你的帮助。我没有承诺使用mxODBC,但是如果我使用其他东西,我需要知道将代码更改为什么。在


Tags: 文件代码importoswindowslibconnectsa
2条回答

您可以尝试使用pyodbc:

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

首先,我很抱歉这是您对Python的介绍。被扔在最深处一点也不好玩。话虽如此,我想说几句话,希望能对你有所帮助。在

  1. 您尝试运行的程序是旧的。你提到了2001年(在我看来,这让人联想到石器时代的人们),所以这就是Python2.0或2.1。现在,我不太关心语言本身,因为保持核心语言和标准库向后兼容是维护人员的首要任务,但对于应用程序所需的任何其他库来说,情况可能并非如此。API在11年内会发生很大的变化,一些库可能会被完全抛弃(这可能意味着有更好的替代品,但仍然存在)。我要说的是你可能需要耐心。

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

  3. 另外,我认为import语句应该改为:

    import mx.ODBC.Windows, os
    

    这意味着connect语句应该是:

    ^{2美元
  4. 像以前那样在\Lib目录中移动Python文件可能会破坏某些东西。你可能想撤销这个。

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

  6. 如果出于某种原因mxODBC不适合您,请尝试pyodbc。你需要构造一个合适的连接字符串才能正常工作,但是有足够多的例子可以让你开始。

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

相关问题 更多 >