【发布时间】:2009-05-11 07:08:27
【问题描述】:
我有一个 Perl 脚本,它通过 DBI 模块与现有数据库(数据库类型未知)交互,我想在 WinXP 上的 python 2.6 中访问它。
Perl 代码是:
use DBI;
my $DSN = "DBI:Proxy:hostname=some.dot.com;port=12345;dsn=DBI:XXXX:ZZZZZ";
my $dbh = DBI->connect($DSN);
这可以翻译成python等价物吗?
按照 (Is there any pywin32 odbc connector documentation available?) 的示例,我整理了以下内容:
import odbc
DSN = "DBI:Proxy:hostname=some.dot.com;port=12345;dsn=DBI:XXXX:ZZZZZ"
db = odbc.odbc(DSN)
但我得到了错误:
dbi.operation-error: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified in LOGIN
更新
似乎另一个 Perl 模块 DBD::Proxy 正在为处理实际查询的 Perl DBI::ProxyServer(服务器端)实现提供实际接口。
python可以用来与基于Perl的DBI::ProxyServer接口吗?
【问题讨论】:
-
相同的 Perl 代码是否在同一台 Windows 机器上运行而没有错误?
-
好问题。我正在努力安装 DBI,这是另一个问题。
-
ActiveState 和 Strawberry Perl Windows 发行版都捆绑了 DBI。
-
似乎我缺少 DBD::Proxy 模块,我正在努力安装它。
-
我的 perl 版本的脚本现在可以运行了,没有问题。