Python相当于perl的dbi / DBD :: Proxy访问? (Perl DBI / DBD :: Python代理)

时间:2009-05-11 07:08:27

标签: python perl odbc dbi

我有一个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

进行交互

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

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

2 个答案:

答案 0 :(得分:5)

您的python脚本不必是Perl脚本的逐行转换。

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

或在Google上搜索“YourDatabaseName + python”

答案 1 :(得分:0)

sqlalchemy非常好。