さじろーどっとねっと
<Commit,Rollbackの使用方法>

概要
access関数から、insert,update,delete等により、変更されたデータはCommitにより変更が確定され、Rollbackによって変更をキャンセルすることが出来ます。
以下のプログラムを参照して下さい。
Sample

require "sajidb.pl"; ## データベースファイルの宣言
$sdb = new sajidb; ## データベースの初期化
$sdb->access("tablelock dattbl,seqtbl");## テープルロック
@dat = $sdb->access("query dattbl"); ## データの抽出(同時にテーブルをロックします)
foreach(@dat){
($no,$japan,$english,$email) = split( /<>/ ,$_ );
## 同じメールアドレスがあったらエラー
if($email eq "sajiro@bigfoot.com"){
print "このデータは既に登録されています";
$sdb->rollback(); ## 現在までの変更内容を消去します
}
}
## データの作成
$no = $sdb->sequence( "seqtbl" ); ## プライマリーIDの取得
$rec = "$no<>これはテストです<>This is test<>sajiro@bigfoot.com<>";
$sdb->access("insert dattbl", "$rec" ); ## データの登録
$sdb->commit(); ## この時点でデータは正式に登録されます
## 登録したデータを抽出する
@dat=$sdb->access( "query dattbl 4 eq sajiro@bigfoot.com" );
foreach(@dat){
## 抽出したデータを分割する。
($no,$japan,$english,$email) = split( /<>/ ,$_ );
## 分割したデータを表示する。
print "$no,$japan,$english,$email\n";
## このように表示されます
## --> 1,これはテストです,This is test,sajiro@bigfoot.com
}

ブックマークに追加する