2012-10-06 35 views

回答

3

這裏有2種方式,COM調度和odbc。您將需要pywin32擴展和/或pyodbc來使用這些方法。

import win32com.client 
import pyodbc 

def ado(): 
    ''' 
    connect with com dispatch objs 
    ''' 
    conn = win32com.client.Dispatch(r'ADODB.Connection') 
    DSN = ('PROVIDER = Microsoft.Jet.OLEDB.4.0;DATA SOURCE = ' + db + ';') 
    conn.Open(DSN) 

    rs = win32com.client.Dispatch(r'ADODB.Recordset') 
    strsql = "select * from deer" 
    rs.Open(strsql, conn, 1, 3) 
    t = rs.GetRows() 
    conn.Close() 
    return t 

def odbc(): 
    ''' 
    connects with odbc 
    '''   
    constr = 'Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=' + db 
    conn = pyodbc.connect(constr, autocommit=True) 
    cur = conn.cursor() 
    strsql = "select * from deer" 
    cur.execute(strsql) 
    t = list(cur) 
    conn.close() 
    return t 

if __name__ == '__main__': 

    db = 'c:/work/deer/deer.mdb' 
    data1 = ado() 
    data2 = odbc() 

好運,

邁克

+0

@MikeHunter,我給出了一個錯誤 回溯(最近通話最後一個): 文件 「d:\ ThirdTask \ connect.py」第1行 import kinterbasdb,win32com.client ImportError:沒有名爲win32com.client的模塊 – dva

+0

@dva您需要Python for Windows擴展,如Mike所述:http://sourceforge.net/projects/pywin32/ – HansUp