Page suivante Page précédente Table 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 appelerdatabase.cgiouinventur.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
doparquery:
# $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
errstrtels que celui de la ligne précédente parerrmsg. 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 keyn'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 clauseCREATE INDEXpour créer des entrées uniques.
Page suivante Page précédente Table des matières