jeudi 12 novembre 2009

Python et Sql Serveur

Il est possible de connecter Python à différentes bases de données de diverses façon.
Le site python.org propose d'ailleurs une page entièrement dédiée aux projets et packages relatif à la connectivité DB.
Python.org va encore plus loin avec une page spécifique concernant Sql Serveur.

Python et Sql Serveur
Il existe de nombreuses librairies permettant d'attaquer Sql Serveur et le choix est embarrassant tellement les options sont nombreuses. Trop de choix tue le choix :-).
Certaines de ces librairies ne sont d'ailleurs pas "cross-platform", il fait donc faire son choix avec attention.
Ne faisant que quelques tests sans importance stratégique, mon choix s'est porté sur pyODBC.
Il y a plusieurs raisons à cela:
  1. pyODBC est un projet issus du MIT. Ce qui lui donne une excellente références.
  2. pyODBC est un projet distribué sur GoogleCode.
    Jusqu'à ce jour, je n'y ai trouvé que des codes sources d'excellente facture.
  3. pyODBC dispose d'un installeur pour Windows (ce qui est le bien venu pour un débutant).
  4. pyODBC dispose d'un excellent tutorial dans le wiki de GoogleCode.
Finallement, et après quelques minutes, il apparaît que le coding avec pyODBC est une bonheur de simplicité.
Note: le module pyODBC implémente la DB API 2 de Python.

Exemple
>>> import pyodbc
>>> connStr = 'DRIVER={SQL Server};SERVER=localhost;DATABASE=MyTestDB;UID=TheSqlUser;PWD=TheSqlPassword'
>>> conn = pyodbc.connect( connStr )
>>> cursor = conn.execute( "select name from sysobjects where name like '%tblPS%' and xtype='u'" )
>>> for row in cursor:
    print row.name
    
tblPSlnkPIToP
tblPSMaterial
tblPSProcessInstance
tblPSProcessModel
tblPSResource

>>> # The cursor must be re-open to be read again
>>> cursor = conn.execute( "select name from sysobjects where name like '%tblPS%' and xtype='u'" )
>>> print( [ row.name for row in cursor ] )
[u'tblPSlnkPIToP', u'tblPSMaterial', u'tblPSProcessInstance', u'tblPSProcessModel', u'tblPSResource']
plus d'exemple d'utilisation de pyODBC sur la page Getting Started du wiki de pyODBC.

Installer pyODBC
Voir le projet pyODBC sur GoogleCode, il dispose d'un installeur spécifique à la plateforme Windows.

Aucun commentaire: