2014-10-16 255 views
0

我在Azure中有3個數據塊,我嘗試連接到其中的一個。pymssql.connect()似乎忽略數據庫字符串參數

conn = pymssql.connect(server='hostname.database.windows.net', 
        user='[email protected]', 
        password='*****', 
        database='my_db', 
        timeout=0, 
        login_timeout=60, 
        charset='UTF-8', 
        as_dict=False, 
        host='', 
        port='1433') 


cursor = conn.cursor() 
cursor.execute('select db_name()') #to get the name of my db (which should be "my_db") 
result = cursor.fetchone() 
print result 

但是我得到的是「主」,這是默認的Azure數據庫。這不應該發生,因爲我已經將'databse'字符串參數指定爲「my_db」。

請指教。

回答

1

您的問題是您的pymssql版本。 pip上的最新版本是2.1.0,但支持azure的版本是2.1.1。 所以,如果你從源代碼安裝它,它會工作。此外,請確保您有freeTDS> 0.91

+0

您可能想詳細說明爲什麼'freeTDS'是額外的要求。否則,歡迎來到SO – 2014-11-21 16:23:55

+0

[tag:pymssql]是[tag:freeTDS]的Python界面。 – 2014-11-21 20:35:41