2016-04-25 113 views
1

所以我一直在試圖找到一個好的模塊來查詢我公司POSTGRES數據庫中的信息。 有這麼多的模型,但我似乎只能讓pyodbc工作。爲什麼psycopg2和pyodbc以不同的方式連接到數據庫?我怎麼能翻譯一個連接?

爲什麼pyodbc的連接形式與psycopg2不同,它似乎是上級模塊?

如何將我的連接查詢從一個切換到另一個?


我可以連接到我的公司這樣的服務器與pyodbc沒問題。

pyodbc.connect("DRIVER={SQLServer};SERVER=some\servername;DATABASE=someDatabaseName;Trusted_Connection=yes") 

但是,這並不工作,psycopg2有:

psycopg2.connect(database="someDatabaseName", host="some\servername") 

psycopg2回報:

OperationalError: could not translate host name "some\servername" to address: Unknown host



話題:
我希望有人能幫助我的Heroku的服務器根本不希望安裝pyodbc

+1

請確認RDBMS類型 - 您的問題提到了Postgres,但'pyodbc'代碼示例引用了SQL Server驅動程序。這是什麼? 'psycopg2'不適用於SQL Server。 – Bryan

+0

@Bryan我想我在這裏沒有範圍。 (學習!) 我想我正在訪問使用Postgres SQL數據庫設置的SQL Server。那可能嗎? 更新:驅動程序是Microsoft SQL Server。 因此,解決方案應該找到另一個ODBC模塊比pyodbc或找到某種方式將其安裝在我的服務器上,因爲像psycopg2模塊將無法正常工作? – MadsVJ

+0

我們都在學習,這就是我們來到這裏的原因! :)無法在SQL Server上託管Postgres數據庫,這些軟件產品是互斥的。 – Bryan

回答

1

pyodbc是可用於連接到許多不同類型的使用ODBC API數據庫的Python模塊。具體而言,pyodbc符合DB API 2.0規範。

您的工作代碼示例使用SQL Server驅動程序的ODBC實現連接到SQL Server實例。 驅動程序是DBMS特有的,ODBC不是。

相關問題