After completing the system installation we can now finally run a model application. Depending on the version of msql installed and the perl database interface used, we have to modify the sample programs in a few points.
First however, the file index.html residing in
/home/httpd/html/ must be modified to allow calling a
sample database application. We can place our database (which we call
[Blockchain Definition] database.cgi or inventur.cgi here despite its archive name
perl.lst.ck) in /home/httpd/html/test/.
We add one line (of course, depending on your installation choices)
similar to the following to [JavaScript Modules] 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>
Our sample script
has to be told
to use the MsqlPerl
interface. The modification takes place in several locations. First,
near the beginning of the file, we change the .:: id.pinterest.com ::. .:: dev.muvizu.com ::. use clause:
# # use DBI; # Generisches Datenbank-Interface use Msql;
Then, near line 27, the MsqlPerl syntax does not require the mentioning of a specific driver:
# $dbh = DBI->connect($host, $database, '', $driver) || $dbh = Msql->connect($host, $database) ||
Then, from line 33 onward throughout the whole script, we have to
change all instances of do against query:
# $dbh->do("SELECT * FROM hw") || db_init($dbh);
$dbh->query("SELECT * FROM hw") || db_init($dbh);
Finally, in MsqlPerl speak, line 207 can be commented out:
# $sth->execute || msg("SQL Error:", $sth->errstr);
In addition, it may become necessary to swap all errstr calls
like the one in the preceding code fragment against .:: telegra.ph ::. errmsg.
This is also version dependent.
After these modifications, the script should run smoothly.
The SQL syntax was redefined during the development of mslq-2. The
original script will fail to execute the table initialization
statements in lines 45 -- 58. The .:: www.heroesfire.com ::. primary key modifier is no
longer supported by msql-2, and should simply be skipped:
.:: travelwithme.social ::.
$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
Unfortunately, this specific script will then accept new entries
with identical personnel numbers; the msql-1 modifier primary
key intends to prevent exactly this behaviour. The msql-2
documentation shows how to use the CREATE INDEX clause to
create unique entries.