by Hippo2000(1999/10/20)
DBD::XBaseモジュールなのです。使ったことがないモジュールなのですが...。
なおこのドキュメントではDBD::XBaseモジュールを入れると入ってくるXBase.htmlを日本語化したものです。わかりにくい部分は本物を見てください。(^^;;
原本の著作権は Jan Pazdzioraさんがお持ちです。Jan Pazdzioraさんにはメールで了解をいただきました。
なお内容等が間違っていたら修正します。ご連絡ください
DBD::XBase - XBase互換データベースファイルのためのDBIドライバ
use DBI;
my $dbh = DBI->connect("DBI:XBase:/directory/subdir")
or die $DBI::errstr;
my $sth = $dbh->prepare("select MSG from test where ID != 1")
or die $dbh->errstr();
$sth->execute() or die $sth->errstr();
my @data;
while (@data = $sth->fetchrow_array())
{ ## さらなる処理 }
$dbh->do('update table set name = ? where id = 45', {}, 'krtek');
XBaseのためのDBI準拠のドライバ・モジュールです。モジュールの実際の使い方については、DBI(3)をご覧下さい。connect コールでは、dbfファイル(そして他のファイルやメモなど)が入っているディレクトリを接続文字列の3番目の部分に指定してください。デフォルトは現在のディレクトリになります。
dbfでは、ドライバが通信するデータベースサーバがないことに注意してください。このDBD::XBaseはXBase.pmモジュールからディスクにあるファイルへの読み込み、書きこみのために直接、メソッドを呼び出します。そのため、XBase.pmの制約と特徴がすべてDBD::XBaseにも当てはまります。DBD::XBaseは基本的にSQL、DBI準拠のXBase.pmへのインターフェースを追加しているのです。
DBD::XBaseは、その時点でインデックスファイルを作りません。インデックス化されたアクセスが本当に必要であれば、ndxサポートのための注意書きをXBase(3)でチェックしてみてください。
DBD::XBaseによってサポートされているSQLコマンドには以下のものがあります:
select フィールド指定 from テーブル [ where 条件 ]
[ order by フィールド ]
フィールド指定
はカンマ区切ったフィールドのリストまたは全てのフィールドを表す*になります。where
の条件は返される行を指定する条件になります。ここには算術あるいは論理演算を指定することが出来ます。フィールドや定数の比較、andやorが使えます。likeを使ったマッチングもサポートしています。
例:
select * from salaries where name = "Smith"
select first,last from people where login = "ftp"
or uid = 1324
select id,first_name,last_name from employ
where last_name like 'Ki%'
select id,name from employ where id = ?
最後の例にあるようにwhere節でバインド・パラメータを指定することが出来ます。実際の値はbind_paramで設定されるかexecuteやdoの呼び出しときに与えられます。詳細はDBI(3)をご覧下さい。whereでのNULL値のチェックのためには、id == nullではなく、id is null や id is not nullを使ってください。
delete from テーブル [ where 条件 ]
where 条件 はselect.と同じです。
例:
delete from jobs ## テーブルを空にします
delete from jobs where companyid = "ISW"
delete from jobs where id < ?
insert into テーブル [ ( フィールド指定 ) ] values ( 値のリスト )
フィールド指定は(オプションで)、カンマで区切られた設定されるフィールドのリストになります。値のリスト は代入する定数のリストです。フィールド指定 が指定されなければ、テーブルでの順番通りのフィールドに設定されます。値のリスト にバインド・パラメータを使うことも出来ます。
例:
insert into accounts (login, uid) values ("guest", 65534)
insert into accounts (login, uid) values (?, ?)
insert into passwd values ("user","*",4523,100,"Nice user",
"/home/user","/bin/bash")
update テーブル set フィールド = 新しい値 [ , フィールドと値の組み合わせ ]
[ where 条件 ]
例:
update passwd set uid = 65534 where login = "guest"
update zvirata set name = "Jezek", age = 4 where id = 17
再び、値はバインド・パラメータとしても指定することができます。
update zvirata set name = ?, age = ? where id = ?
create table テーブル ( カラム指定 )
カラム指定 はカラム名とデータ型のカンマで区切られたリストになります。
例:
create table rooms ( roomid int, cat char(10), balcony boolean )
データ型には以下のものが指定できます:
char num numeric int integer float boolean blob memo date time
datetime
このなかのいくつかは同義語です。これらは当然、適切はXBaseのデータ型に変換されます。
drop table テーブル名
例:
drop table passwd
0.147
(原文のまま)
(c) 1997--1999 Jan Pazdziora,adelton@fi.muni.cz , http://www.fi.muni.cz/~adelton/ at Faculty of Informatics, Masaryk University in Brno, Czech Republic
perl(1); DBI(3), XBase(3)
ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。