2013-08-02 171 views
1

我目前正在嘗試使用pyodbc從python程序連接DB2。由於驅動程序尚未安裝在服務器中,我從IBM網站下載了它,但我不確定如何使用pyodbc進行連接。pyodbc連接到DB2

,我正在使用的代碼是:

cnx = pyodbc.connect(
     'Driver={IBM DB2 ODBC Driver}; ' 
     'Hostname=hostname; ' 
     'Port=50100; ' 
     'Protocol=TCPIP; ' 
     'Database=db_name; ' 
     'CurrentSchema=schema; ' 
     'UID=user_id; ' 
     'PWD = passw;' 
     ) 

不知道如何將它與我剛下載任何暗示將是非常有益的驅動程序和CLI連接。

這個問題是相關的:如果你想使用pyodbc

DB2 connection through pyodbc and pandas.io.sql in Unix Box with non-root

回答

3

,你將需要:

安裝/配置供應商的ODBC驅動程序。

對於您的情況,您需要安裝用於ODBC和CLI的DB2數據服務器驅動程序,DB2數據服務器運行時客戶機或DB2數據服務器客戶機,並定義到DB2客戶機中遠程DB2數據庫的連接。

安裝/配置系統(例如,unixODBC數據)

您必須註冊驅動程序管理器的IBM DB2客戶端ODBC驅動程序安裝的ODBC驅動程序管理器。 (即在/etc/odbcinst.ini)。

對於我的系統(具有數據服務器客戶端),該條目是這樣的:

[DB2] 
Description = DB2 Driver 
Driver  = /home/db2inst1/sqllib/lib/libdb2.so 
FileUsage = 1 
DontDLClose = 1 

設置爲你的數據庫DSN。

您可以在/etc/odbc.ini(系統DSN)或$HOME/.odbc.ini(用戶DSN)中執行此操作。

$HOME/.odbc.ini樣子:

[SAMPLE] 
Driver = DB2 

有了這一切,你應該能有一個連接語句中使用pyodbc:

cnx = pyodbc.connect('DSN=SAMPLE; UID=user; PWD=password') 

我不知道,如果可以使用pyodbc和DB2的無DSN連接。我

+1

它可以使用與pyodbc和DB2 DSN的連接,我已經配置它。您只需使用連接字符串,如「DRIVER = {IBM DB2 ODBC DRIVER}; HOSTNAME =主機名; DATABASE = db_name; UID =用戶; PWD =密碼; PROTOCOL = TCPIP; PORT =端口」。 –

0

這對於pyodbc連接字符串,工作方式:

conexion_str = 'SYSTEM=%s;db2:DSN=%s;UID=%s;PWD=%s;DRIVER=%s;' % (self._SYSTEM, self._DSN, self._UID, self._PWD, self._DRIVER) 
self._cnn = pyodbc.connect(conexion_str)