システムインストール終了後、モデルアプリケーションを実行することができます。 インストールしたmsqlのバージョンやperlデータベースインターフェースに依存し し、サンプルプログラムを2〜3修正しなければいけません。
まず/home/httpd/html/にあるindex.htmlファイルがサンプルデータ
ベースアプリケーションを呼び出すように修正します。/home/httpd/html/test/のデータベース(アーカイブ名はperl.lst.ckですが、database.cgi
あるいはinventur.cgiと呼びます)に置き換えます。
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>
サンプルスクリプトはMsqlPerlインターフェースを使うようにします。
そのために適当な箇所を書き換えます。はじめにファイルのはじめあたりのuse
指定を変更します。
# # use DBI; # Generisches Datenbank-Interface use Msql;
# $dbh = DBI->connect($host, $database, '', $driver) || $dbh = Msql->connect($host, $database) ||
doをqueryに変更します。
# $dbh->do("SELECT * FROM hw") || db_init($dbh);
$dbh->query("SELECT * FROM hw") || db_init($dbh);
# $sth->execute || msg("SQL Error:", $sth->errstr);
errmsgに対する前のコードフラグメントの一つのように全errstrコール
をスワップする必要があります。これはバージョンに依存するものです。
以上の作業が終了したらスクリプトはスムーズに実行されます。
SQL syntaxはmslq-2の開発中に再定義されました。オリジナルスクリプトは
45〜58行にテーブル初期化ステートメントを実行することはできません。
primary key modifierはmsql-2ではもうサポートされていません。
以下をスキップします:
$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
primary keyをこの動作を防ぐのに使います。msql-2ドキュメント
はCREATE INDEXが唯一のエントリ発行を閉じる方法について書かれています。