0

我继承了一些遗留代码,此时我只需要让它工作 - 只有它有这个代码:

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,但如果我使用其他东西,我需要知道将代码更改为什么。

4

2 回答 2

1

首先,很抱歉,这必须是您对 Python 的介绍。被扔进深渊并不好玩。话虽如此,我有一些评论希望对您有所帮助。

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

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

  3. 另外,我认为导入语句应该是:

    import mx.ODBC.Windows, os
    

    这意味着连接语句应为:

    mx.ODBC.Windows.connect("DRG3","sa","")
    
  4. 像你一样在 \Lib 目录中移动 Python 文件可能会破坏一些东西。您可能想要撤消该操作。

  5. 我也有点担心您要连接的数据源。如果它真的是 ODBC,你可能会在设置或让它工作时遇到问题,但这取决于你运行的 Windows 的风格。很长一段时间以来,Microsoft 一直在弃用 ODBC,而 64 位 Windows 确实在这里破坏了一些东西。最近,他们似乎又回到了这一点,但我不确定到目前为止究竟是什么结果。

  6. 如果由于某种原因 mxODBC 对您不起作用,请尝试pyodbc。您需要构建一个正确的连接字符串才能使其正常工作,但是互联网上有足够的示例可以帮助您入门。

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

于 2012-06-02T10:02:50.453 回答
0

你可以用 pyodbc 试试这个:

import pyodbc
DBconn = pyodbc.connect("DSN=DRG3;UID=sa;PWD=")
cursor = DBconn.cursor()
于 2012-06-02T10:10:43.653 回答