2012-10-06 8 views

Répondre

3

Voici 2 manières, avec l'expédition de COM et avec odbc. Vous aurez besoin des extensions pywin32 et/ou pyodbc pour utiliser ces méthodes.

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() 

bonne chance,

Mike

+0

@MikeHunter, me donné une erreur retraçage (le plus récent appel dernier): Fichier "D: \ ThirdTask \ connect.py", ligne 1, dans import kinterbasdb, win32com.client ImportError: aucun module nommé win32com.client – dva

+0

@dva Vous avez besoin des extensions Python pour Windows comme l'a mentionné Mike: http://sourceforge.net/projects/pywin32/ – HansUp