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.
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.
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.