さじろーどっとねっと
<使い方>

カスタマイズ
perldb.plの以下の部分を変更して下さい。

# Config
$d_timeout=60 * 10; # seconds, For example 600 is 10 min.
$d_DEBUG="FALSE"; # TRUE or FALSE
$d_doc="cgi"; # データファイルの拡張子

$d_timeout
ロックの制限時間です。デフォルトは60×10=600秒=10分です。10分間ロックされていると自動的にロック解除されます。
$d_DEBUG
ログの出力をする場合は、TRUEを設定してください。dbdataフォルダ内にlog.txtファイルが作成されます。snap関数を使用する場合にもTRUEにしてください。
$d_doc
データファイルの拡張子です。デフォルトでは"cgi"を使用しています。
(※ サンプルプログラムを動かす場合は変更しないで下さい)

基本的な使用方法
以下のプログラムを参照して下さい。
Sample

require "lib/perldb.pl"; ## データベースファイルの宣言
$sdb = perldb->new(""); ## データベースの初期化
## データの作成
$rec = "これはテストです<>This is test<>sajiro<>bigfoot.com<>";
$sdb->insert( "table", "$rec" ); ## データの登録
$sdb->commit(); ## この時点でデータは正式に登録されます
## 登録したデータを抽出する
@dat=$sdb->select( "table", "3 eq sajiro" );
foreach(@dat){
## 抽出したデータを分割する。
($no,$japan,$english,$name,$domain) = split( /<>/ ,$_ );
## 分割したデータを表示する。
print "$no,$japan,$english,$name,$domain\n";
## このように表示されます
## --> 1,これはテストです,This is test,sajiro,bigfoot.com
}
## 抽出したデータの削除
@dat=$sdb->delete( "table", "3 eq sajiro" );
foreach(@dat){
print "$_"; ## 削除したデータの表示
}

new関数によってデータベースは初期化されます。
new関数で獲得したデータから他の全ての関数を呼び出します。
(呼び出し方法は他にもありますが、動作確認をしたのは上記の方法です)

Commit,Rollbackの使用方法
以下のプログラムを参照して下さい。(ちょっと日記プログラム)
Sample

require "lib/perl.pl"; ## データベースファイルの宣言
$sdb = perl->new(""); ## データベースの初期化

if($FORM{'commect'} ne ""){ ## コメントが入っていたら
## 二重登録の防止、同じコメントは削除
@dat=$sdb->delete("table","2 eq $FORM{'commect'}");
if($#dat >= 0){ ## データがある時
$sdb->rollback; ## 重複データはエラー
exit;
}

## 日付とコメントの追加
$sdb->insert("table","$date<>$FORM{'commect'});

## 新しい順にソートして先頭の30件以降はoldに移動する
$sdb->movetable("table","old","0 sort down","under max 30");

## 古いデータは100件残して、削除する。
$sdb->delete("old","0 sort down","under max 100");

## 変更結果を反映する
$sdb->commit;
}
## tableから、先頭の30件を取り出す
@dat = $sdb->select("table","0 sort up","upper max 30")
foreach(@dat){
## データを区切り文字で区切る
($no,$date,$commect)=split(/<>/,$_);
## データを表示する
print "$no,$date,$commect";
}

insert,update,delete,selectForUpdate等により、変更されたデータはCommitにより変更が確定され、Rollbackによって変更をキャンセルすることが出来ます。

データの考え方
以下のプログラムを参照して下さい。
Sample
## 項目の1番目に「a」、2番目に「b」、3番目に「c」を設定します。
$sdb->insert("table","a<>b<>c<>");

## 登録したデータを取り出します。
@dat=$sdb->select("table");
($p0,$p1,$p2,$p3)=$dat[0];
print "$p0,$p1,$p2,$p3";
## 表示結果は、「2,a,b,c]になります。

insertしたデータの先頭にプライマリーキーが追加されます。プライマリーキーは最長15桁の数値です。

## データを抽出する際は、データの番号に注意しましょう。
$sdb->select("table","1 eq a");

項目番号1が「a」のデータを抽出します。項目番号は、プライマリーキーが「0(ゼロ)」、以降1、2、3?と増えていきます。

## bのデータを探す場合は、以下のように呼び出します。
$sdb->select("table","2 eq b");

## プライマリーキーを昇順でsortする場合は、以下のように呼び出します。
$sdb->select("table","0 sort up");


ブックマークに追加する