1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

DESS TIMH

Introduction au langage Perl

  1. Accès aux bases de données : dbperl

    Un des aspects les plus intéressants de Perl. Il permet d'intégrer des requêtes SQL dans un
    programme.
    Depuis Perl version 5, on accède de la même manière à une base de données quelque soit le
    système choisi. Auparavant l'accès était différent si on utilisait Oraperl (Oracle), ou Syperl
    ( Sybase)... Maintenant on utilise un module DBI (database interface), et on spécifie à la connexion
    que l'on travaille sur une base Oracle, ou Ingres, ou Sybase...
    Quand on installe Perl, il faut installer un « module » DBI, et un « module » DBoracle.

Au LIM nous utilisons Oracle (sur Unix uniquement)
Voici quelques commandes à utiliser pour accéder aux bases de données.
*use DBI;En début de programme spécifie que l'on va faire de l'accès aux bases de données

  • $dbh = DBI->connect("dbi:Oracle:cours", 'nom/mot-de-passe'); =>
    Connexion à Oracle, sur la base de données qui s'appelle « cours », avec le l'utilisateur nomet
    son mot de passe
  • $dbh->disconnect;


=> Pour se déconnecter de la base de données en fin de programme

  • $dbh->do("requête");=> Pour exécuter une requête SQL.
    A n'utiliser qu'avec des requêtes du genre create table, updatenom-table, insertinto
    nom-table...
    Il est préférable de traiter une erreur éventuelle dans ce genre d'opération (requête SQL mal
    formulée, connexion interdite, ...). On le fait de la même manière que pour la détection des
    erreurs dans l'ouverture de fichier :
    $dbh->do("requête") || die "Pb de requête : $DBI::errstr";
    (l'erreur est une erreur ORACLE, c'est pourquoi on utilise la variable $DBI::errstr)
  • Pour une requête de type selecton va procéder en quatre temps :
  • préparation de la requête (prepare)
  • exécution (execute)
  • parcours de chaque ligne retournée par la requête (fetchrow_array), dans une
    boucle
  1. fin de la requête (finish)

IMAGE imgs/introperl45.gif

Il est possible de paramétrer une requête, en mettant des points d'interrogation dans la requête au
niveau du
prepare, les paramètres seront spécifiés dans leexecute.

http://www.med.univ-rennes1.fr/~poulique/cours/perl/

Page 35

[CONVERTED BY MYRMIDON]