Page suivantePage pr�c�denteTable des mati�res

4. Un exemple de Base de Donn�es

Apr�s avoir termin� la proc�dure d'installation, nous pouvons maintenant lancer l'application donn�e en exemple. En fonction de la version de msql install�e et de l'interface perl utilis�e, nous devrons modifier un peu ce programme.

Tout d'abord, le fichier index.html, dans le r�pertoire /home/httpd/html/ doit �tre modifi� pour appeler l'application exemple. Nous pouvons mettre notre base (que nous pouvons appeler database.cgi ou inventur.cgi) dans /home/httpd/html/test.

Nous ajoutons une ligne parmi les suivantes dans index.html (� choisir, bien s�r, en fonction des choix d'installation) :


<LI>Test the <A HREF="test/database.cgi">Database, DBI:DBD-mSQL style!</A>
<LI>Test the <A HREF="test/inventur.cgi">Database, MsqlPerl style!</A>

Vous ne devez en principe choisir qu'une seule des deux lignes pr�c�dentes, mais vous pouvez, si vous avez install� les deux types d'interface, laisser les deux lignes telles quelles. Vous pourrez alors comparer les performances.

4.1 Adaptation de l'exemple de script pour MsqlPerl

Il est n�cessaire d'indiquer, dans notre exemple de script, qu'il faut utiliser l'interface MsqlPerl. La modification doit �tre faite � plusieurs endroits. D'abord, au d�but du fichier, il faut changer la clause use :

# use DBI;                 # Generisches Datebank-Interface
use Msql;

Ensuite, � la ligne 27, MsqlPerl n'exige pas la mention d'un pilote particulier :

# $dbh = DBI->connect($host, $database, '', $driver) ||
$dbh = Msql->connect($host, $database) ||

A partir de la ligne 33 et pour tout le script, changez toutes les occurrences de do par query :

# $dbh->do("SELECT * FROM hw") || db_init($dbh);
$dbh->query("SELECT * FROM hw") || db_init($dbh);

Enfin, dans le laius MsqlPerl, la ligne 207 peut �tre mise en commentaire :

# $sth->execute || msg("SQL Error: $sth->errstr);

De plus, il peut �tre n�cessaire de remplacer tout les appels errstr tels que celui de la ligne pr�c�dente par errmsg. Cela d�pend de la version utilis�e.

Apr�s ces modifications, le script doit tourner correctement.

4.2 Adaptation de l'exemple pour msql-2

La syntaxe SQL a subi des changements durant le d�veloppement de msql-2. Le script original n'ex�cutera pas les instructions d'initialisation de la table, aux lignes 45 -- 48. Le modificateur primary key n'est plus compris par msql-2, et doit �tre supprim� :

 $dbh->do(<<EOT) || die $dbh->errstr;   # Neue Personen-Tabelle
 create table person (
# We do not need the 'primary key' modifier anymore in msql-2!
#           pn    int primary key,    # Personalnummer
 pn    int,                # Personalnummer
 name  char(80),           # Nachname, Vorname
 raum  int                 # Raumnummer
 )
EOT
 $dbh->do(<<EOT) || die $dbh->errstr;   # Neue Hardware-Tabelle
 create table hw (
# We do not need the 'primary key' modifier anymore in msql-2!
#           asset   int primary key,    # Inventurnummer
 asset   int,                # Inventurnummer
 name    char(80),           # Bezeichnung
 person  int                 # Besitzer
 )
EOT

Malheureusement, ce script particulier acceptera maintenant les enregistrements avec des num�ros personnels identiques ; le modificateur msql-1 primary key �tait justement l� pour �viter cela. La documentation msql2 indique comment utiliser la clause CREATE INDEX pour cr�er des entr�es uniques.


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:16