さじろーどっとねっと
<Perl DATABASE>

Perl DATABASEはPerlで作成された、データベースライブラリです。あなたが使っているWEBサーバーにデータベースを簡単に作成できます。いままで面倒だったファイルのロックや、追加、検索、削除が簡単に行えます。

v1.10.7 ダウンロード
条件なし削除を不可に変更/GetTime関数のパラメタを追加/シグナル処理の追加/プログラムを小さくする努力/大文字小文字検索を追加(ieq, iin,iinall)/sort random 処理を追加/selectの空白文字削除処理を追加/大文字小文字処理を既存モジュールに追加/新規にieq,ine,iin,iniを追加/検索項目に gt, ge, lt, leを追加/検索処理が動かないバグを修正

v1.01 ダウンロード
・初回リリース版です。バグあったら掲示板かメールでお問い合わせください

v1.00.1283.6 Final Beta
・ベータ版のリリース、ベータ版ですのでご使用には十分ご注意ください
・0 field spectial処理を追加
v1.00.1283 Final Beta
・ベータ版のリリース、ベータ版ですのでご使用には十分ご注意ください


概要
Perl DATABASEはPerlで作成された、データベースライブラリです。あなたが使っているWEBサーバーにデータベースを簡単に作成できます。いままで面倒だったファイルのロックや、追加、検索、削除が簡単に行えます。UNIXのPerlはもちろんのこと、ActivePerl For Win32でも動作します。OS依存もまったくなく、WIN95/98/NT/2000、UNIX、LINUXすべて動作します。又、特定のライブラリを...「概要 」の続きを見る
特徴
1. insert,update,delete,selectなどなど、データ管理を簡単に行えます! 2. すべてのwwwサーバー(perl5含む)で稼動します。(すると思います.^ ^) 3. これを使えば、掲示板、サーチエンジン、チャット、アンケート等のデータ管理を簡単に行えます。 4. 完全ロック方式を採用しているので排他処理(ファイルのロック)が不要です。 ...「特徴」の続きを見る
サンプルプログラム
動作確認用テスト掲示板チャットサーチエンジン...「サンプルプログラム」の続きを見る
ファイル構成
ファイル名内容1lib/perl.plPERL DATABASEプログラム2how.htmこのファイル3sample/bbs.cgiサンプル掲示板4sample/chat.cgiサンプルチャット5sample/serche.cgiサンプルサーチエンジン6sample/test.cgi動作確認用サンプルスクリプト7dbdataデータ出力フォルダ8lib/jcode.pl日本語変換ライブラリ...「ファイル構成」の続きを見る
設置構成例 (かっこ内はパーミッション、未記入は変更無し)
public_html / index.html (ホームページなど) | +-- cgi-bin / how.htm | ref.htm | +-- lib / perldb.pl | jcode.pl | +-- sample / searche.cgi [705 or 775] | bbs.cgi [705 or 775] | chat.cgi [705 or 775] | test.cgi [705 or 775] | +-- dbdata / [707 or 777]cgi-bin/dbdata フォルダは必ず作成し、...「設置構成例 (かっこ内はパーミッション、未記入は変更無し)」の続きを見る
カスタマイズ
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を設定し...「カスタマイズ」の続きを見る
基本的な使用方法
以下のプログラムを参照して下さい。Samplerequire "lib/perldb.pl"; ## データベースファイルの宣言$sdb = perldb->new(""); ## データベースの初期化 ## データの作成$rec = "これはテストです<>This is test<>sajiro<>bigfoot.com<>";$sdb->insert( "table", "$rec" ); ## データの登録$sdb->commit(); ## この時点でデータは...「基本的な使用方法」の続きを見る
Commit,Rollbackの使用方法
以下のプログラムを参照して下さい。(ちょっと日記プログラム)Samplerequire "lib/perl.pl"; ## データベースファイルの宣言$sdb = perl->new(""); ## データベースの初期化if($FORM{'commect'} ne ""){ ## コメントが入っていたら ## 二重登録の防止、同じコメントは削除 @dat=$sdb->delete("table","2 eq $FORM{'commect'}"); if($#dat >= 0){ ## データがある時 $sdb->rollback; ...「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...「データの考え方」の続きを見る


new( $path )
データベースの初期化関数です。全てのデータベース関数を使用する場合、この関数を呼び出す必要があります。$pathデータファイルの相対パス(実行ファイルから)を設定します。デフォルトは、dataが使用されます。...「new( $path )」の続きを見る
@data = select( $table, $ext )
検索条件に従ってテーブルからデータを抽出します。引数 内容$table テーブル名を指定します。$ext 抽出データ用の拡張パラメタです。多数の組み合わせを行うことができます。→$extを参照@data 抽出したデータを配列で返します。Sample Program## 4番目の項目が"101"のレコードを新しい順で最大200件table01から読み込みます。@dat=$sdb->select( "table01", "4 == 101", "0 sort up","upper max 200")...「@data = select( $table, $ext )」の続きを見る
@data = selectForUpdate( $table, $ext )
selectと同じ処理を行いますが、同時にテーブルのロックをします。引数 内容$table テーブル名を指定します。$ext 抽出データ用の拡張パラメタです。多数の組み合わせを行うことができます。→$extを参照@data 抽出したデータを配列で返します。Sample Program## 4番目の項目が"101"のレコードを新しい順でtable01から読み込みます。$dat=$sdb->selectForUpdate( "table01", "4 == 101");...「@data = selectForUpdate( $table, $ext )」の続きを見る
insert( $table, @data )
# テーブルに対してデータを追加します。引数 内容$table テーブル名を指定します。@data 追加するデータを指定します。データは区切り文字("<>")で区切られていることを条件とします。Sample Program## table01にデータを追加します。$sdb->insert("table01","01<>名前<>EMAIL<>コメント<>");## 複数のデータを同時にtable01に追加します。@dat=("aaa<>bbb<>ccc<>","dd...「insert( $table, @data )」の続きを見る
update( $table, $data, $ext )
テーブルのデータを更新します。指定のデータ存在しない場合でも処理はエラーを返しません。一致データが複数存在するときは、先頭データを更新し、以降のデータを削除します。引数 内容$table テーブル名を指定します。$data TABLEに追加するデータを指定します。データは区切り文字("<>")で区切られていることを条件とします。$ext 抽出データ用の拡張パラメタで...「update( $table, $data, $ext )」の続きを見る
@dat = delete( $table, $ext )
$extで抽出されるデータをテーブルから削除します。引数 内容$table テーブル名を指定します。$ext 削除データ用の拡張パラメタです。多数の組み合わせを行うことができます。→$extを参照@data 削除したデータを配列で返します。Sample Program## 項目番号1が「名前」のデータを削除します@dat = $sdb->delete("table01","1 eq 名前");## 削除したデータを表示しますforeach(@dat){ print $_;}...「@dat = delete( $table, $ext )」の続きを見る
commit( $option )
変更データを反映します引数 内容$option 「nocompact」をしていするとちょっと処理が早くなります。しかし、定期的に行わないとだんだん遅くなってきます。データ追加のみの場合は「nocompact」のほうが良いと思います。Sample Program$sdb->insert("table","aaa<>bbb<>ccc<>");$sdb->commit("nocompact");...「commit( $option )」の続きを見る
rollback()
変更データを開放します。引数 内容$sdb->insert("table","aaa<>bbb<>ccc<>");$sdb->rollback();## データは変更されていません...「rollback()」の続きを見る
movetable( $srctable, $dsttable, $ext )
$srctableから、$extで抽出したデータを$dsttableに移動します引数 内容$srctable 入力テーブル名を指定します。$dsttable 出力テーブル名を指定します。$ext 移動データ用の拡張パラメタです。多数の組み合わせを行うことができます。→$extを参照Sample Program## 新しいデータ50件以降を過去ログに移動します$sdb->movetable("table","old","0 sort up","under max 50");...「movetable( $srctable, $dsttable, $ext )」の続きを見る
snap( $msg, __FILE__ , __LINE__ )
$msgをログファイルに出力します。$d_DEBUGにTRUEを指定しなければ出力されません引数 内容$msg メッセージSample Program## エラーを出力します。$sdb->snap("タイムアウトが発生しました",__FILE__,__LINE__);...「snap( $msg, __FILE__ , __LINE__ )」の続きを見る


ADD方式
Perl DATABASEでは、データ管理にADD方式を採用しています。この章ではADD方式の概要を説明します。ADD方式では以下のようにファイルに設定します。ファイル名は「perldbdat?.cgi」となります。$perldb->insert("test","aaa<>bbb<>ccc<>ddd<>");を実行した場合・・・perldbdattest.cgi???????????????????000000000000002000000000000002<>aaa<>bbb<>ccc<>ddd<>???????????...「ADD方式」の続きを見る
TOP?LOCK方式
Perl DATABASEでは、ファイルロックにTOP?LOCK方式を採用しています。この章ではTOP?LOCK方式の概要を説明します。ファイルのロックの方法は、flockを使用するケースが多くありますが、flockを使用する場合、特定のライブラリを必要とします。PERLDBではOPEN環境での稼動を目的としておりますので、特定ライブラリの仕様は規定外になります。...「TOP?LOCK方式」の続きを見る


データベースのファイルを直接書き換えても良いですか?
PerlDATABASEは2つのファイルから成り立っています。インデックスファイルとデータファイルです。これはPerlDATABASEの通常のコマンドで入力(insert)した場合に両方のファイルが更新されます。仮にデータデータファイルのみを書き換えた場合、データの整合性が取れない場合があります。私は作者ですが、変更した場合にどのような状態になるか解りません。やめた方が...「データベースのファイルを直接書き換えても良いですか?」の続きを見る
SAJIRO DATABASEとの互換性はありますか?
データの形式が違いますので、互換性はありません。アプリケーションによっては、データコンバーターを作ります。...「SAJIRO DATABASEとの互換性はありますか?」の続きを見る
データはどれくらい大きくなっても大丈夫ですか?
原理的には増えても大丈夫ですが、テストの結果、WEBでは4MBくらいまでが限界かなと思います。...「データはどれくらい大きくなっても大丈夫ですか?」の続きを見る
MACでも動きますか。
私はMACについて良く知らないのでたいしたことは言えませんが、MAC用のPRELがあれば動くと思います。ただ、MAC用のPERLがあるかどうかは知りません。だれか知っている人がいたら教えてください。...「MACでも動きますか。」の続きを見る


ブックマークに追加する