我使用的是Ubuntu,我想從客戶端計算機連接到sybase IQ服務器(遠程),我嘗試根據sybase文檔安裝/使用sqlanydb,但是我不請參閱與sybase服務器的IP相關的sqlanydb.connect()中的任何參數。我認爲這個例程想象sybase db在本地主機上,對嗎?客戶端使用Python3連接到sybase IQ
我是否需要安裝客戶端上的SYBASE,以及能夠 連接到遠程Sybase數據庫?或者只是sqlanydb就夠了?
如何讓此驅動程序連接到遠程服務器?
我使用的是Ubuntu,我想從客戶端計算機連接到sybase IQ服務器(遠程),我嘗試根據sybase文檔安裝/使用sqlanydb,但是我不請參閱與sybase服務器的IP相關的sqlanydb.connect()中的任何參數。我認爲這個例程想象sybase db在本地主機上,對嗎?客戶端使用Python3連接到sybase IQ
我是否需要安裝客戶端上的SYBASE,以及能夠 連接到遠程Sybase數據庫?或者只是sqlanydb就夠了?
如何讓此驅動程序連接到遠程服務器?
您確實需要安裝客戶端軟件。 python驅動程序基本上是dbcapi客戶端庫的python界面,所以如果沒有在機器上安裝客戶端軟件,就不能使用它。
對於連接到遠程服務器,您可以使用HOST參數。該connect()
函數接受作爲參數的任何有效的連接參數,所以像uid=steve;pwd=secretpassword;host=myserverhost:4567;dbn=mydatabase
一個連接字符串將轉化爲:
sqlanydb.connect(uid = 'steve',
pwd = 'secretpassword',
host = 'myserverhost:4567',
dbn = 'mydatabase')
連接參數記錄here。如果未使用HOST,客戶端將嘗試共享內存連接。共享內存比TCP快,但顯然只有在客戶端和服務器位於同一臺計算機上時纔有效。
你可以用下面的API連接,
import Sybase
db = Sybase.connect('server','name','pass','database')
c = db.cursor()
c.execute("sql statement")
確保DSN是存在於sql.ini文件。
謝謝,是的,它的工作,我還發現另一種解決方案,使用'links = tcpip()...'我有興趣知道它與您的解決方案性能明智的區別! –
'links'參數較舊,在不知道運行數據庫服務器的機器時使用。它發送UDP廣播數據包,服務器響應,然後從那裏建立TCP連接。 'host'參數稍後添加並指定服務器正在運行的位置。當使用'links'時,客戶端緩存結果,以便第二次和後續時間,它不必發送廣播。除第一次客戶端連接到特定服務器外,沒有性能差異。 –