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

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

v4.5 build 35 beta ベータ版につきフリー配布
ベータ版に付き取り扱いに十分ご注意ください
Sequenceのバグを修正、テストスクリプトにSequence処理を追加 /newにデバッグ情報を追加 /ロック処理を強化 /dbwng、dbinf関数を追加 /ロックファイルのunlinkをerasefileに変更 /ソース中にdbinf、dbwngを追加 /デバッグ情報の出力処理を強化($d_DEBUG_LOG, $d_DEBUG_DSP) /newにデバッグ設定を追加 /Queryにfoeach&Sleepを追加 /Commitのロックチェックにリトライを追加 /TableLock関数を access("ParallelLock")に変更 /access("ParallelQuery")を追加 /access("Group")に「val」パラメタを追加 /withに文字検索で小文字変換処理を追加 /ログ出力文字列をCSVで開けるように変更 /groupのminで0になるバグを修正 /コメントを修正 /テンプファイルの拡張子を変更 /ログファイル名を変更 /ファイルサイズ0以下のロックミス判定を追加

v4.4 build 5 beta 配布終了
&dberrをdberrに変更 /dberrのnoを廃止、messageに変更 /update, delete, query 制御のバッファリングを中止 /setCookieモジュールを見やすく変更 /テーブル連結処理(with)を追加 /ファイルありオープンエラーを追加 /無駄なLocal定義を削除 /バッファパラメタを追加 /query処理をバッファ制御に変更 /Copy、CopyAddをバッファー制御に変更 /大文字小文字変換をAccess関数で一括変換に変更 /delete、Updateをバッファー制御に変更 /sSnapのファイルハンドルを変更 /改行文字削除をmapに変更 /with処理のバグを修正 /バッファサイズパラメターを追加 /GetProduct関数にパラメターを追加 /chochopを追加

v4.2 beta
setCookieモジュールを見やすく変更/テーブル連結処理(with)を追加/ファイルありオープンエラーを追加

v4.1 ダウンロード(シェアウェア)
文字のタイトル等々の変更、リファレンスの変更、コンフィグ項目の書式変更
gt,ge,lt,le の文字列比較を追加 / データアクセス方式を変更 / or検索対応 / 大文字・小文字検索サポート / 連続コマンド発行サポート(関数連結) / グルーピング対応 / その他、検索処理全般を見直し / クーキー対応

v3.02
・delete関数のバグを修正・2100年になってしまうバグを修正・データベースの基本機能を変更・SelectForUpdate処理を追加・テーブルロックの形式を変更・データファイル名を変更・完全Commit、Rollback形式を採用・Select処理を変更・パスワード処理を削除・テーブルファイルの拡張子を変更可能にした・エラー時のロック解除処理のバグを修正・Y2K処理を削除・テーブルロック時のバグを修正・ロックファイルの有効期限処理を追加・削除&登録処理を追加・パフォーマンス向上のため、undoを削除・データベースアーキテクチャーの変更・select処理のスピード向上・日付取得処理を追加・テーブルロック方式の安全性の向上・commit、rollback方式に変更・データバックアップ機能を追加・select処理の大幅変更・sequence処理のデフォルト値追加・WEB用データベースデビュー!


合意事項
1. SAJIRO DATABASEの著作権は作成者に帰属します。 2. データの中身に対して当方は責任を負いかねます。 3. データのバックアップは個人の責任で行ってください。...「合意事項 」の続きを見る
特徴
access関数がデータベースから、条件付きの抽出、グループピング、ソート、追加、削除、更新が一括でできます。関数連結機能とフリーフォーマットインターフェースにより、データの一括変換、一括修正、多彩な抽出方式が可能になります。insert deleteなどのデータベース更新コマンドで自動的に排他制御を行います。いままで面倒だったファイルのロックが必要ありま...「特徴 」の続きを見る
ファイル構成
ファイル名 内容1 lib/sajidb.pl SAJIRO DATABASEプログラム2 readme.htm READMEファイル3 sample/bbs.cgi ミニ掲示板4 sample/chat.cgi ミニチャット5 sample/serche.cgi ミニサーチエンジン6 sample/test.cgi 動作確認スクリプト7 data データ出力フォルダ8 data/index.htm 一覧表示防止用...「ファイル構成 」の続きを見る
設置構成例 (かっこ内はパーミッション、未記入は変更無し)
public_html / index.html (ホームページなど) | +-- cgi-bin / readme.htm | +-- lib / sajidb.pl | +-- sample / searche.cgi [705 or 775] | bbs.cgi [705 or 775] | chat.cgi [705 or 775] | test.cgi [705 or 775] | +-- data / [707 or 777]# cgi-bin/sample/data/ フォルダは必ず作成し、パーミッション[7...「設置構成例 (かっこ内はパーミッション、未記入は変更無し)」の続きを見る
カスタマイズ
sajidb.plの以下の部分を変更して下さい。ほとんどの場合、変更の必要性はありません# Config$d_timeout=60 * 10; # ロックタイムアウトの秒数 $d_DEBUG="FALSE"; # TRUE or FALSE(デバッグ情報の出力)$d_doc="cgi"; # データファイルの拡張子$d_data="data"; # デフォルトのデータパス$d_timeout ロックの最長時間を指定します。長時間データをロックする...「カスタマイズ」の続きを見る
サンプルプログラム
ミニ掲示板ミニサーチエンジンミニチャット...「サンプルプログラム」の続きを見る
データベース概要
SAJIRO DATABASEはPerlで作成された、テキストベースのデータベースです。以下に登録データ形式のフォーマットを記載します。01<>項目1a<>項目1b<>項目1c<>02<>項目2a<>項目2b<>項目2c<>上記のようにデータは各フィールド毎に"<>"で区切られます。項目の内容に区切り記号("<>")が存在した場合、検索処理等で正常なデータが抽出でません。...「データベース概要」の続きを見る
基本的な呼び出し方法
概要new関数によってデータベースは初期化されます。new関数で獲得したデータから他の全ての関数を呼び出します。(呼び出し方法は他にもありますが、動作確認をしたのはSAMPLE方法です)Samplerequire "sajidb.pl"; ## データベースファイルの宣言$sdb = new sajidb; ## データベースの初期化$no = $sdb->sequence( "tableseq" ); ## プライマリーIDの取得 ...「基本的な呼び出し方法」の続きを見る
Commit,Rollbackの使用方法
概要access関数から、insert,update,delete等により、変更されたデータはCommitにより変更が確定され、Rollbackによって変更をキャンセルすることが出来ます。以下のプログラムを参照して下さい。Samplerequire "sajidb.pl"; ## データベースファイルの宣言$sdb = new sajidb; ## データベースの初期化$sdb->access("tablelock dattbl,seqtbl");## テープルロック@dat = $sdb->access("q...「Commit,Rollbackの使用方法」の続きを見る


$ret = new sajidb( $path )
データベースの初期化関数です。全てのデータベース関数を使用する場合、この関数を呼び出す必要があります。引数$pathデータファイルの相対パス(実行ファイルから)を設定します。デフォルトは、dataが使用されます。$retSajiro DATABASEのハンドルを返します。...「$ret = new sajidb( $path )」の続きを見る
@ret = access( "query $table $ext .... ")
検索条件に従ってテーブルからデータを抽出します。 関数連結対応に対応しています。引数$tableテーブル名を指定します。$ext抽出データ用の拡張パラメタです。多数の組み合わせを行うことができます。→$extを参照@ret抽出したデータを返しますSample Programrequire "sajidb.pl"; ## データベースファイルの宣言$sdb = new sajidb(); ## データベースの初期化...「@ret = access( "query $table $ext .... ")」の続きを見る
@ret = access( "select $ext .... ",@rec)
検索条件に従って配列からデータを抽出します。 関数連結対応に対応しています。引数$ext抽出データ用の拡張パラメタです。多数の組み合わせを行うことができます。→$extを参照@rec配列を指定します。@ret抽出したデータを返しますSample Programrequire "sajidb.pl"; ## データベースファイルの宣言$sdb = new sajidb(); ## データベースの初期化## 4番目の...「@ret = access( "select $ext .... ",@rec)」の続きを見る
@ret = access( "sort $cal $no, $cal $no, .... ",@rec)
条件に従って配列をソートします。 関数連結対応に対応しています。引数$calソート用の拡張パラメタです。up:数字昇順、down:数字降順、cup:文字昇順、cdown:文字降順の4パターンあります。$noソート対象の項目番号を指定します。@rec配列を指定します。@ret抽出したデータを返しますSample Programrequire "sajidb.pl"; ## データベースファイルの宣言$sdb = new sajidb...「@ret = access( "sort $cal $no, $cal $no, .... ",@rec)」の続きを見る
@ret = access( "cut $cal $cnt, $cal $cnt, .... ",@rec)
条件に従って配列からデータを抽出します。引数$cal切り出し用の拡張パラメタです。upper:$cntから先頭まで、under:$cntから末尾までの2パターンあります。$cnt対象のデータ件数を指定します。@rec配列を指定します。@ret抽出したデータを返しますSample Programrequire "sajidb.pl"; ## データベースファイルの宣言$sdb = new sajidb(); ## データベースの初期化...「@ret = access( "cut $cal $cnt, $cal $cnt, .... ",@rec)」の続きを見る
@ret = access( "group $cal $no, $cal $no, .... ",@rec)
条件に従って配列をグルーピングした結果を返します。 関数連結対応に対応しています。引数$calグループピングルールの拡張パラメタです。grp:グループ(同一のものは一行にします)、cnt:NULL以外の件数を集計します、sum:合計値を算出します。max:最大値、min最小値を組み合わせて使用します。$cnt抽出対象の項目番号を指定します。@rec配列を指定します。@ret抽出...「@ret = access( "group $cal $no, $cal $no, .... ",@rec)」の続きを見る
@ret = access( "with $table $no1 $cal $no2 &&.... ",@rec)
@recと指定のテーブルを条件に従って連結します。v4.2以降でサポート 関数連結対応に対応しています。引数$table結合するテーブルを指定します。$no1@rec側の検索項目番号を指定します。$cal一致条件を指定います。抽出データ用の拡張パラメタと同様の項目が使用可能です。多数の組み合わせを行うことができます。($extを参照)$no2$table側の検索項目番号を指定します。@re...「@ret = access( "with $table $no1 $cal $no2 &&.... ",@rec)」の続きを見る
@ret = access( "insert $table", @rec );
@recをテーブルに追加します。 関数連結対応に対応しています。引数$tableテーブルの名前を指定します。@rec追加するデータを指定します。@ret追加したデータを返しますSample Programrequire "sajidb.pl"; ## データベースファイルの宣言$sdb = new sajidb(); ## データベースの初期化@data=( "01<>ccc<>1<>", "02<>bbb<>0<>", "03<>aaa<>1<&g...「@ret = access( "insert $table", @rec );」の続きを見る
@ret = access( "delete $table $ext .... ")
検索条件に従ってテーブルからデータを削除します。 関数連結対応に対応しています。引数$table:テーブル名を指定します。$ext抽出データ用の拡張パラメタです。多数の組み合わせを行うことができます。→$extを参照@ret削除したデータを返しますSample Programrequire "sajidb.pl"; ## データベースファイルの宣言$sdb = new sajidb(); ## データベースの初期...「@ret = access( "delete $table $ext .... ")」の続きを見る
@ret = access( "update $table $ext .... ",@rec)
検索条件に従ってテーブルからデータを更新します。 関数連結対応に対応しています。引数$table:テーブル名を指定します。$ext抽出データ用の拡張パラメタです。多数の組み合わせを行うことができます。→$extを参照@rec変更するデータを指定します。@ret更新するデータを返しますSample Programrequire "sajidb.pl"; ## データベースファイルの宣言$sdb = new sajidb(); ...「@ret = access( "update $table $ext .... ",@rec)」の続きを見る


MACでも動きますか。
私はMACについて良く知らないのでたいしたことは言えませんが、MAC用のPRELがあれば動くと思います。ただ、MAC用のPERLがあるかどうかは知りません。だれか知っている人がいたら教えてください。...「MACでも動きますか。」の続きを見る
select時にテーブルをロックすることはできますか?
SelectForUpdate関数でv3.x以降でできるようになりました。v4.xx以降で上記の関数はなくなりました。tablelock関数で事前にロックをしてください...「select時にテーブルをロックすることはできますか?」の続きを見る
データベースのファイルを直接書き換えても良いですか?
私は作者ですが、変更した場合にどのような状態になるか解りません。やめた方が良いと思います。...「データベースのファイルを直接書き換えても良いですか?」の続きを見る
v4以降でサポート関数が減りましたが、下位バージョンサポートはしないのですか?
v4以降ではデータ部分ではなく、関数の呼び出しそのものを変更しました。これは従来の呼び出し方法の限界を感じたためであり、今後のサポートを意識したものではありません。なるべく買いサポートは行う予定ですが、下位バージョンをサポートするためのプログラムを作るのは結構骨です。データ部分に関しては下位バージョンをサポートします。...「v4以降でサポート関数が減りましたが、下位バージョンサポートはしないのですか?」の続きを見る
フリーウェアと書いている場合と、シェアウェアを書いている場合がありますがどちらが正しいのでしょうか?
開発当初はシェアウェアでしたが、質問に答えきれなくなったのでフリーにしました。同時に掲示板をつくりそ都度回答するという形式にしています。今後はベータ版を作ってフリーとする予定です。製品版はシェアウェアにしたいと思っています。ベータでバグレポートした人はフリーとかにしたいですね。正式にシェアウェアになりました...「フリーウェアと書いている場合と、シェアウェアを書いている場合がありますがどちらが正しいのでしょうか?」の続きを見る
flockを使用しないのはなぜですか?
flockはほとんどのperlに入っていますが、稀に入っていないものがあるので使用していません。基本的にオープンで動くようになっていますので特別なモジュールが必要な関数は極力使用しないようにしています...「flockを使用しないのはなぜですか?」の続きを見る


ブックマークに追加する