さじろーどっとねっと
<関数リファレンス>

@ret = access( "query $table $ext .... ")
検索条件に従ってテーブルからデータを抽出します。 関数連結対応に対応しています。
引数
$table
テーブル名を指定します。
$ext
抽出データ用の拡張パラメタです。多数の組み合わせを行うことができます。
→$extを参照
@ret
抽出したデータを返します

Sample Program

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

## 4番目の項目が"101"のレコードを table01 から読み込みます。
@dat=$sdb->access("query table01 4 eq 101");

## 4番目の項目が"101"以上のレコードを table01 から読み込みます。
@dat=$sdb->access("query table01 4 >= 101");

## 4番目の項目に"101"が含まれるレコードを table01 から読み込みます。
@dat=$sdb->access("query table01 4 in 101");

## 4番目の項目に"101"以上、"200"未満のレコードを table01 から読み込みます。
@dat=$sdb->access("query table01 4 >= 101 ∧ 4 < 200");

## 4番目の項目に"101"未満又は"200"以上のレコードを table01 から読み込みます。
@dat=$sdb->access("query table01 4 < 101 ∨ 4 >= 200");

@ret = access( "select $ext .... ",@rec)
検索条件に従って配列からデータを抽出します。 関数連結対応に対応しています。
引数
$ext
抽出データ用の拡張パラメタです。多数の組み合わせを行うことができます。
→$extを参照
@rec
配列を指定します。
@ret
抽出したデータを返します

Sample Program

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

## 4番目の項目が"101"のレコードを @data から読み込みます。
@dat=$sdb->access("selecct 4 eq 101", @data);

## 4番目の項目が"101"以上のレコードを @data から読み込みます。
@dat=$sdb->access("select 4 >= 101", @data);

## 4番目の項目に"101"が含まれるレコードを @data から読み込みます。
@dat=$sdb->access("select 4 in 101", @data);

## 4番目の項目に"101"以上、"200"未満のレコードを @data から読み込みます。
@dat=$sdb->access("select 4 >= 101 ∧ 4 < 200", @data);

## 4番目の項目に"101"未満又は"200"以上のレコードを @data から読み込みます。
@dat=$sdb->access("select 4 < 101 ∨ 4 >= 200", @data);

@ret = access( "sort $cal $no, $cal $no, .... ",@rec)
条件に従って配列をソートします。 関数連結対応に対応しています。
引数
$cal
ソート用の拡張パラメタです。up:数字昇順、down:数字降順、cup:文字昇順、cdown:文字降順の4パターンあります。
$no
ソート対象の項目番号を指定します。
@rec
配列を指定します。
@ret
抽出したデータを返します
Sample Program

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

@data=( "1<>ddd<>", "2<>ccc<>", "3<>bbb<>", "4<>aaa<>" );

## 0番目の項目を数字昇順でソートします。
@dat=$sdb->access("sort up 0", @data);

## 1番目の項目を文字降順でソートします。
@dat=$sdb->access("sort cdown 1", @data);

## 1番目の項目を文字降順で、0番目の項目を数字昇順でソートします。
@dat=$sdb->access("sort cdown 1, up 0", @data);

@ret = access( "cut $cal $cnt, $cal $cnt, .... ",@rec)
条件に従って配列からデータを抽出します。
引数
$cal
切り出し用の拡張パラメタです。upper:$cntから先頭まで、under:$cntから末尾までの2パターンあります。
$cnt
対象のデータ件数を指定します。
@rec
配列を指定します。
@ret
抽出したデータを返します
Sample Program

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

## 先頭から10件を取り出します。
@dat=$sdb->access("cut upper 10", @data);

## 先頭から20件目以降を取り出します。
@dat=$sdb->access("cut under 20", @data);

## 先頭から20件目以降の先頭10件を取り出します。
@dat=$sdb->access("cut under 20, upper 10", @data);


@ret = access( "group $cal $no, $cal $no, .... ",@rec)
条件に従って配列をグルーピングした結果を返します。 関数連結対応に対応しています。
引数
$cal
グループピングルールの拡張パラメタです。grp:グループ(同一のものは一行にします)、cnt:NULL以外の件数を集計します、sum:合計値を算出します。max:最大値、min最小値を組み合わせて使用します。
$cnt
抽出対象の項目番号を指定します。
@rec
配列を指定します。
@ret
抽出したデータを返します
Sample Program

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

@data=( "01<>ccc<>1<>", "02<>bbb<>0<>", "03<>aaa<>1<>", "04<>aaa<>2<>" );

## 1番目の項目でグループ、2番目の項目の合計を集計します。
@dat=$sdb->access("group grp 1, sum 2", @data);
## 結果はこのようになります。
## ccc<>1<>
## bbb<>0<>
## aaa<>3<>

## 1番目の項目でグループ、2番目の項目の合計
## 1番目の項目の個数、2番目の項目の最大値を返します。
@dat=$sdb->access("group grp 1, sum 2, cnt 1, max 2", @data);
## 結果はこのようになります。
## ccc<>1<>1<>1<>
## bbb<>0<>1<>0<>
## aaa<>3<>2<>2<>


@ret = access( "with $table $no1 $cal $no2 &&.... ",@rec)
@recと指定のテーブルを条件に従って連結します。v4.2以降でサポート 関数連結対応に対応しています。
引数
$table
結合するテーブルを指定します。
$no1
@rec側の検索項目番号を指定します。
$cal
一致条件を指定います。抽出データ用の拡張パラメタと同様の項目が使用可能です。多数の組み合わせを行うことができます。($extを参照)
$no2
$table側の検索項目番号を指定します。
@rec
配列を指定します。
@ret
結合されたレコードを返します。結合されたデータはオリジナルの後ろにつきます。
Sample Program

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

@data=( "1<>AAA<>", "2<>BBB<>", "3<>CCC<>", "4<>DDD<>" );
$sdb->( "insert $table", @data );

@rec=( "901<>1<>", "902<>3<>", "903<>2<>", "904<>4<>" );

## $tableと@recを連結します。@recの0番目と$tableの1番目の項目の一致
@dat=$sdb->access("with $table 1 == 0", @rec );
## 結果はこのようになります
## 901<>1<>1<>AAA<>
## 902<>3<>3<>CCC<>
## 903<>2<>2<>BBB<>
## 904<>4<>4<>DDD<>


## 2つにテーブルを結合する場合
## データをテーブルに入れます
@rec=( "901<>1<>", "902<>3<>", "903<>2<>", "904<>4<>" );
$sdb->( "insert $rec", @rec );
## queryからデータを読み込み関数連結でデータを集合させます
@dat=$sdb->access("query $rec 0 > 902 &&& with $table 1 == 0");
## 結果はこのようになります。
## 903<>2<>2<>BBB<>
## 904<>4<>4<>DDD<>

@ret = access( "delete $table $ext .... ")
検索条件に従ってテーブルからデータを削除します。 関数連結対応に対応しています。
引数
$table:
テーブル名を指定します。
$ext
抽出データ用の拡張パラメタです。多数の組み合わせを行うことができます。
→$extを参照
@ret
削除したデータを返します
Sample Program

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

## 4番目の項目が"101"のレコードを table01 から削除します。
@dat=$sdb->access("delete table01 4 eq 101");

## 4番目の項目が"101"以上のレコードを table01 から削除します。
@dat=$sdb->access("delete table01 4 >= 101");

## 4番目の項目に"101"が含まれるレコードを table01 から削除します。
@dat=$sdb->access("delete table01 4 in 101");

## 4番目の項目に"101"以上、"200"未満のレコードを table01 から削除します。
@dat=$sdb->access("delete table01 4 >= 101 ∧ 4 < 200");


@ret = access( "update $table $ext .... ",@rec)
検索条件に従ってテーブルからデータを更新します。 関数連結対応に対応しています。
引数
$table:
テーブル名を指定します。
$ext
抽出データ用の拡張パラメタです。多数の組み合わせを行うことができます。
→$extを参照
@rec
変更するデータを指定します。
@ret
更新するデータを返します
Sample Program

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

## 4番目の項目が"101"のレコードを table01 から更新します。
@dat=$sdb->access("update table01 4 eq 101","01<>aaa<>bbb<>ccc<>101<>");

## 4番目の項目が"101"以上のレコードを table01 から更新します。
@dat=$sdb->access("update table01 4 >= 101", @data);


$ret = sequence( "$table $index")
ユニークな文字列を返します。文字列は、「時間(秒)+シーケンシャル番号」となります
引数
$table
シーケンシャル用のテーブル名を指定します。以外のテーブルと同じ名前は使用しないでください
$index
シーケンシャル番号のインデックスを指定します。省略できます
$ret
ユニークな文字列を返します
Sample Program

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

## tableseq のデフォルトインデックスが示すシーケンシャル文字列を返します
$work=$sdb->sequence("tableseq");

## tableseq の mark1 インデックスが示すシーケンシャル文字列を返します
$work=$sdb->sequence("tableseq mark1");

## tableseq のデフォルトインデックスが示すシーケンシャル文字列でデータを登録します。
$no = $sdb->sequence( "tableseq" ); ## シーケンシャル文字列の取得
$sdb->access("insert table01","$no<>これはテストです<>"); ## データの登録
$sdb->commit(); ## この時点でデータは正式に登録されます


@ret = GetTime( $time, $type )
時間文字列を返します。
引数
$time
変換対象の時間を指定します。なしの場合は現在の time 関数を使用します。
$type
all又は、なしを指定します。allの場合は、分割時間文字列を返します。なしの場合は、"year/mon/mday-hour:min:sec" の形式で返します
@ret
$typeの値により返される文字列が変わります。
Sample Program

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

## 現在時刻の文字列を返します
$date=$sdb->GetTime();

## 一週間前の時刻文字列を返します
$tm=time-60*60*24*7;
$date=$sdb->GetTime($tm);

## 現在の時間を分割時間文字列を返します
($wsec,$wmin,$whour,$wmday,$wmonth,$wyear,$wwday,$wwnday,$wweek,$wisdst)=$sdb->GetTime("","all");

## 一週間前の分割時間文字列を返します
$tm=time-60*60*24*7;
($wsec,$wmin,$whour,$wmday,$wmonth,$wyear,$wwday,$wwnday,$wweek,$wisdst)=$sdb->GetTime($tm,"all");


$ext
データ選択、抽出時の拡張パラメターです。
引数
$no
項目番号を指定します
$cal
式を設定します
$data
値を設定します
条件連結
∧でアンド条件、∨でオア条件で検索ができます
$cal(呼び出し可能式)
$no eq $data 項目番号$noの値と$dataが等しい
$no ne $data 項目番号$noの値と$dataが等しくない
$no in $data 項目番号$noの値に$dataが含まれているとき
$no ni $data 項目番号$noの値に$dataが含まれていないとき
$no gt $data 項目番号$noの値が$dataより大きいとき
$no ge $data 項目番号$noの値が$dataと等しい又は、大きいとき
$no lt $data 項目番号$noの値が$dataより小さいとき
$no le $data 項目番号$noの値が$dataと等しい又は、小さいとき
$no == $data 項目番号$noの数値が$dataと等しいとき
$no != $data 項目番号$noの数値が$dataと等しくないとき
$no >= $data 項目番号$noの数値が$dataと等しい又は、大きいとき
$no > $data 項目番号$noの数値が$dataより大きいとき
$no <= $data 項目番号$noの数値が$dataと等しい又は、小さいとき
$no < $data 項目番号$noの数値が$dataより小さいとき
Sample Program

vrequire "sajidb.pl"; ## データベースファイルの宣言
$sdb = new sajidb(); ## データベースの初期化

## 0番が10、1番が100以上又は、200未満のデータを抽出
@dat=$sdb->access("query table01 0 eq 10 ∧ 1 >= 100 ∨ 1 < 200");

## 0番に10を含み、1番が100以外で、2番がNULLのデータを抽出
@dat=$sdb->access("select 0 in 10 ∧ 1 != 100 ∧ 2 eq ");


関数連結
複数の関数を連続で呼び出し、データ受け渡しをするパラメータです。連結によりqueryからinsert、deleteからgroup ,insertなどが1コマンドで可能になります。
引数
関数連結文字列
各関数の連結に「&&&(アンパサンド×3)」を使用します。
Sample Program

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

## 0番が10を抽出、0番で昇順にソート、先頭20件を返します
@dat=$sdb->access("query table01 0 eq 10 &&& sort up 0 &&& cut upper 20");

## table01 から、0番が10のデータを table02 に追加します。
@dat=$sdb->access("query table01 0 eq 10 &&& insert table02");

## table01 から、0番が10を削除し、データを table02 に追加します。
@dat=$sdb->access("delete table01 0 eq 10 &&& insert table02");



ブックマークに追加する