Python эквивалент доступа Perl к dbi / DBD :: Proxy? (Perl DBI / DBD :: Proxy для Python) - PullRequest
0 голосов
/ 11 мая 2009

У меня есть сценарий Perl, который взаимодействует с существующей базой данных (тип базы данных неизвестен) через модуль DBI, к которому я хотел бы получить доступ в python 2.6 на WinXP.

Код 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

UPDATE

Похоже, что другой модуль 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 ]

5 голосов
/ 11 мая 2009

Ваш скрипт на python не должен быть построчным переводом вашего Perl-скрипта.

Почему бы просто не использовать Python DB-API совместимый модуль для базы данных, к которой вы хотите получить доступ? Для MySQL используйте MySQLdb . Для PostgreSQL используйте PyGreSQL .

Или поищите в Google "YourDatabaseName + python"

0 голосов
/ 12 мая 2009

sqlalchemy довольно приятно.

...