|
Dopo il completamento dell'installazione del sistema si può finalmente eseguire una modello di applicazione. A seconda della versione di msql installata e dell'interfaccia perl utilizzata si dovrà modificare il programma di esempio in qualche punto.
Innanzitutto, il file index.html
posto in /home/httpd/html/
deve essere modificato per permettere di richiamare l'applicazione database
campione. È possibile porre il database (che verrà chiamato database.cgi
o
inventur.cgi
nonostante il nome del file perl.lst.ck
) nella
directory /home/httpd/html/test/
.
Per ottenere lo scopo, appendere una linea (naturalmente dipendente dalle
scelte di installazione) simile alla seguente nel file index.html
:
<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>
Solitamente si dovrebbe mantenere una sola di queste due scelte, ma disponendo di entrambi i tipi di interfaccia database installata è possibile lasciare entrambe le linee così come sono. Sarà in seguito possibile comparare le prestazioni, ecc.
Allo script campione deve essere notificato l'uso dell'interfaccia MsqlPerl.
Le modifiche intervengono in diversi punti. Dapprima, vicino all'inizio del
file, rimpiazzare la clausola use
:
# # use DBI; # Interfaccia Database Generica use Msql;
Poi, alla linea 27, la sintassi MsqlPerl non richiede la menzione di un driver specifico:
# $dbh = DBI->connect($host, $database, '', $driver) || $dbh = Msql->connect($host, $database) ||
Poi, dalla linea 33 per tutto l'intero script, bisogna modificare tutte le
istanze di do
con query
:
# $dbh->do("SELECT * FROM hw") || db_init($dbh); $dbh->query("SELECT * FROM hw") || db_init($dbh);
Infine, la linea 207 deve essere commentata:
# $sth->execute || msg("SQL Error:", $sth->errstr);
Inoltre, può diventare necessario scambiare tutte le chiamate errstr
come quella nel precedente frammento di codice con errmsg
.
Anche questa scelta dipende dalla versione.
Dopo queste modifiche, lo script dovrebbe girare senza intoppi.
La sintassi SQL è stata ridefinita durante lo sviluppo di msql-2. Lo script
originale fallirà l'esecuzione delle istruzioni di inizializzazione tabella
nelle linee 45 -- 58. Il modificatore primary key
non è più
supportato da msql-2, e dovrebbe essere semplicemente evitato:
$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
Sfortunatamente, questo script accetterà nuovi elementi con identico
numero di personale; il modificatore msql-1 primary key
intende
prevenire esattamente questo comportamento. La documentazione msql-2
mostra come usare la clausola CREATE INDEX
per ottenere elementi
univoci.
Hosting by: hurra.com
Generated: 2007-01-26 17:56:18