2010-04-15 4 views
0

J'ai écrit une requête que je veux exécuter dans plusieurs bases de données d'accès. J'ai plus de 1000 bases de données d'accès avec les mêmes tables (mêmes noms, mêmes champs). Jusqu'à présent, j'ai copié manuellement cette requête d'un fichier txt à la vue sql dans l'écran de conception de requête d'accès pour chaque base de données, puis l'exécuter. Je n'avais pas besoin de changer le langage de requête - tout est pareil pour les 1000 bases de données. Y a-t-il un moyen d'automatiser cela?exécuter la même requête dans différentes bases de données

Répondre

1

Vous pouvez automatiser l'utilisation de Python pyodbc module.
Quelque chose comme ceci devrait vous aider à démarrer:

import pyodbc 

def qry_ms_access(db, sql): 
    conn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb)};DBQ='+db, 
          autocommit=True) 
    c = conn.cursor() 
    c.execute(sql) 
    for row in c: 
     print row.mycol 

    c.close() 
    conn.close() 

if __name__ == "__main__": 
    DBS = ['/path/to/MSAccessDb1.mdb', '/path/to/MSAccessDb2.mdb'] # etcetera 

    sql = 'SELECT mycol FROM MyTable;' 

    for db in DBS: 
     qry_ms_access(db, sql) 
Questions connexes