システムインストール終了後、モデルアプリケーションを実行することができます。 インストールした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
が唯一のエントリ発行を閉じる方法について書かれています。