Sophie

Sophie

distrib > Mandriva > 9.0 > i586 > by-pkgid > 0d5cd12c82d627a82c59047e1ba7b8a9 > files > 1483

howto-html-fr-9.0-0.2mdk.noarch.rpm

<HTML>
<HEAD>
<TITLE>Un exemple de Base de Donn&eacute;es</TITLE>
</HEAD>
<BODY>
<H1>4. <A NAME="s4"></A>Un exemple de Base de Donn&eacute;es</H1>
<P>
<A HREF="WWW-mSQL-HOWTO.html#toc4">Contenu de cette section</A></P>

<P>Apr&egrave;s avoir termin&eacute; la proc&eacute;dure d'installation, nous pouvons maintenant lancer l'application donn&eacute;e en exemple. En fonction 
de la version de msql install&eacute;e et de l'interface perl utilis&eacute;e, nous devrons modifier un peu ce programme.</P>
<P></P>
<P>Tout d'abord, le fichier <CODE>index.html</CODE>, dans le r&eacute;pertoire <CODE>/home/httpd/html/</CODE> doit &ecirc;tre modifi&eacute; pour appeler 
l'application exemple. Nous pouvons mettre notre base (que nous pouvons appeler <CODE>database.cgi</CODE> ou <CODE>inventur.cgi</CODE>) 
dans <CODE>/home/httpd/html/test</CODE>.</P>
<P></P>
<P>Nous ajoutons une ligne parmi les suivantes dans <CODE>index.html</CODE> (&agrave; choisir, bien s&ucirc;r, en fonction des choix d'installation) :</P>
<P>
<HR>
<PRE>
&lt;LI&gt;Test the &lt;A HREF=&quot;test/database.cgi&quot;&gt;Database, DBI:DBD-mSQL style!&amp;lt;/A&gt;
&lt;LI&gt;Test the &lt;A HREF=&quot;test/inventur.cgi&quot;&gt;Database, MsqlPerl style!&amp;lt;/A&gt;
</PRE>
<HR>
</P>
<P>Vous ne devez en principe choisir qu'une seule des deux lignes pr&eacute;c&eacute;dentes, mais vous pouvez, si vous avez install&eacute; les 
deux types d'interface, laisser les deux lignes telles quelles. Vous pourrez alors comparer les performances.</P>
<P></P>
<H2>4.1 <A NAME="ss4.1"></A> Adaptation de l'exemple de script pour MsqlPerl</H2>

<P>Il est n&eacute;cessaire d'indiquer, dans notre exemple de script, qu'il faut utiliser l'interface MsqlPerl. La modification doit 
&ecirc;tre faite &agrave; plusieurs endroits. D'abord, au d&eacute;but du fichier, il faut changer la clause <CODE>use</CODE> :</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>

# use DBI;                 # Generisches Datebank-Interface
use Msql;
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Ensuite, &agrave; la ligne 27, MsqlPerl n'exige pas la mention d'un pilote particulier  :</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>

# $dbh = DBI-&gt;connect($host, $database, '', $driver) ||
$dbh = Msql-&gt;connect($host, $database) ||
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>A partir de la ligne 33 et pour tout le script, changez toutes les occurrences de <CODE>do</CODE> par <CODE>query</CODE> :</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>

# $dbh-&gt;do(&quot;SELECT * FROM hw&quot;) || db_init($dbh);
$dbh-&gt;query(&quot;SELECT * FROM hw&quot;) || db_init($dbh);
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Enfin, dans le laius MsqlPerl, la ligne 207 peut &ecirc;tre mise en commentaire :</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>

# $sth-&gt;execute || msg(&quot;SQL Error: $sth-&gt;errstr);
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>De plus, il peut &ecirc;tre n&eacute;cessaire de remplacer tout les appels <CODE>errstr</CODE> tels que celui de la ligne pr&eacute;c&eacute;dente par 
<CODE>errmsg</CODE>. Cela d&eacute;pend de la version utilis&eacute;e.</P>
<P></P>
<P>Apr&egrave;s ces modifications, le script doit tourner correctement.</P>
<P></P>

<H2>4.2 <A NAME="ss4.2"></A> Adaptation de l'exemple pour msql-2</H2>

<P>La syntaxe SQL a subi des changements durant le d&eacute;veloppement de msql-2. Le script original n'ex&eacute;cutera pas les 
instructions d'initialisation de la table, aux lignes 45 -- 48. Le modificateur <CODE>primary key</CODE> n'est plus compris 
par msql-2, et doit &ecirc;tre supprim&eacute; :</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
  $dbh-&gt;do(&lt;&lt;EOT) || die $dbh-&gt;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-&gt;do(&lt;&lt;EOT) || die $dbh-&gt;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
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P></P>
<P>Malheureusement, ce script particulier acceptera maintenant les enregistrements avec des num&eacute;ros personnels 
identiques ; le modificateur msql-1 <CODE>primary key</CODE> &eacute;tait justement l&agrave; pour &eacute;viter cela. La documentation 
msql2 indique comment utiliser la clause <CODE>CREATE INDEX</CODE> pour cr&eacute;er des entr&eacute;es uniques.</P>
<P></P>

<HR>
<P>
Chapitre <A HREF="WWW-mSQL-HOWTO-5.html">suivant</A>,
Chapitre <A HREF="WWW-mSQL-HOWTO-3.html">Pr&eacute;c&eacute;dent</A>
<P>
Table des mati&egrave;res de <A HREF="WWW-mSQL-HOWTO.html#toc4">ce chapitre</A>,
 <A HREF="WWW-mSQL-HOWTO.html#toc">Table des mati&egrave;res</A> g&eacute;n&eacute;rale</P>
<P>
<A HREF="WWW-mSQL-HOWTO.html">D&eacute;but</A> du document,
 <A HREF="#0"> D&eacute;but de ce chapitre</A></P>
</BODY>
</HTML>