Python中等同于perl的dbi/DBD::Proxy访问的是什么?

0 投票
2 回答
2181 浏览
提问于 2025-04-15 11:30

我有一个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的版本吗?

我参考了一个例子(是否有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

2 个回答

0

sqlalchemy 是个非常不错的工具。

5

你的Python脚本不需要逐行翻译成Perl脚本。

为什么不直接使用与Python DB-API兼容的模块来访问你想要的数据库呢?如果是MySQL,可以用MySQLdb。如果是PostgreSQL,可以用PyGreSQL

或者在谷歌上搜索“你的数据库名称 + python”

撰写回答