0

我有一个通过 DBI 模块与现有数据库(数据库类型未知)接口的 Perl 脚本,我想在 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等价物吗?

按照(是否有任何可用的 pywin32 odbc 连接器文档?)的示例,我汇总了以下内容:

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接口吗?

http://metacpan.org/pod/DBD::Proxy

http://hell.org.ua/Docs/oreilly/weblinux/dbi/ch08_02.htm

4

2 回答 2

5

您的 python 脚本不必是 Perl 脚本的逐行翻译。

为什么不对您要访问的数据库使用 Python DB-API兼容模块?对于 MySQL,请使用MySQLdb。对于 PostgreSQL,请使用PyGreSQL

或在 Google 上搜索“YourDatabaseName + python”

于 2009-05-11T08:26:00.497 回答
0

sqlalchemy很不错。

于 2009-05-12T13:13:43.013 回答