by Hippo2000(1999/11/2)
DBD::Fileモジュールなのです。使ったことがないモジュールなのですが...。(未確認なだけ)
なおこのドキュメントではDBD::Fileモジュールを入れると入ってくるFile.htmlを日本語化したものです。わかりにくい部分は本物を見てください。(^^;;
原本の著作権は Jochen Wiedmannさんがお持ちです。Jochen Wiedmannさんにはメールで了解をいただきました。
なお内容等が間違っていたら修正します。ご連絡ください
DBD::File - プレーンなファイルのためのDBIドライバの基礎となるクラス
use DBI;
$dbh = DBI->connect("DBI:File:f_dir=/home/joe/csvdb";)
or die "Cannot connect: " . $DBI::errstr;
$sth = $dbh->prepare("CREATE TABLE a (id INTEGER, name CHAR(10))")
or die "Cannot prepare: " . $dbh->errstr();
$sth->execute() or die "Cannot execute: " . $sth->errstr();
$sth->finish();
$dbh->disconnect();
DBD::Fileモジュールは本当のDBIドライバではなく、実際のDBIドライバをそこから作る基礎となる抽象クラスです。プレーンなファイルに対して機能するこれらのドライバの実装には、例えばCSVファイルやINIファイルがあります。このモジュールは、シンプルなSQLエンジンであるSQL::Statementモジュールを基礎としています。
DBIの詳細についてはDBI(3) を、SQL::Statementの詳細についてはSQL::Statement(3) 、具体的なドライバについてはDBD::CSV(3)またはDBD::IniFile(3)をご覧ください。
これらの属性はDBD::FileではなくDBIそのもので扱われます、そのためこれらは期待する通りの動きをします。
Active
ActiveKids
CachedKids
CompatMode (未使用)
InactiveDestroy
Kids
PrintError
RaiseError
Warn (未使用)
以下のDBI属性はDBD::Fileによって扱われます:
$sth->execute以降、適正です$sth->prepare以降、適正です$sth->execute以降、適正です;Selectステートメント以外ではundefです。以下の属性、メソッドはサポートされていません:
bind_param_inout
CursorName
LongReadLen
LongTruncOk
追加のDBI属性として、以下のdbh属性を使うことができます:
もし他のディレクトリのサブディレクトリを読みたければ、以下のようにしてください:
my($drh) = DBI->install_driver("CSV");
my(@list) = $drh->data_sources('f_dir' => '/usr/local/csv_data' );
my($dbh) = DBI->connect("DBI:CSV:f_dir=/usr/local/csv_data");
my(@list) = $dbh->func('list_tables');
SQLの観点からはテーブル名として適切でないものも含めて、ディレクトリに入っている全てのファイルがリストに含まれることに注意してください。上記の「テーブルの作成、削除」のご覧ください。
flock()
を使っています。しかしこの関数はプラトホームによっては使えない場合があります。flock()
はMacOSとWindows95では使えません:ロックがまったくありません(多分、常にシングル・ユーザなので、これらのオペレーティング・システムではあまり重要ではないでしょう。)。(原文のまま)
This module is Copyright (C) 1998 by
Jochen Wiedmann
Am Eisteich 9
72555 Metzingen
Germany
Email: joe@ispsoft.de
Phone: +49 7123 14887
All rights reserved.
You may distribute this module under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file.
DBI(3), Text::CSV_XS(3), SQL::Statement(3)
ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。