CXV. Paradox ファイルアクセス

導入

警告

この拡張モジュールは、 実験的 なものです。この拡張モジュールの動作・ 関数名・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP のリリースにおいて変更される可能性があります。 このモジュールは自己責任で使用してください。

このモジュールにより、Paradox データベースおよび プライマリインデックスファイル、blob ファイルへの読み書きが可能となります。 書き込み機能はきわめて信頼性の高いものとなっていますが、 出来上がったファイルが他のアプリケーションから読み込めない可能性もあります。 というのも、Paradox についての資料があまりないからです。 pxlib >= 0.5.0 を使用すると、パスワードを指定しなくても 暗号化されたデータベースを読み込めます。

注意: このモジュールは開発途中であり、今後変更される可能性があります。 とはいえ、API に大きな変更を加えるつもりはありません。

要件

関数の基本セットを使用するには、少なくとも PHP 5.0.0 および pxlib >= 0.4.4 が必要です。いくつかの新しい関数は、 pxlib >= 0.6.0 でのみ使用可能となります。 暗号化されたデータベースの読み書きには、少なくとも pxlib >= 0.5.0 が必要です。 paradox ライブラリ (pxlib) は、 http://pxlib.sourceforge.net で取得できます。

インストール手順

簡単なインストールメモ。コンソールで

$ pear install paradox
とタイプしてください。事前に pxlib をインストールしておいてください。 rpm や debian パッケージで pxlib をインストールした場合は、 開発者向けパッケージも忘れずにインストールしてください。

実行時設定

設定ディレクティブは定義されていません。

オブジェクト指向の API

paradox 拡張モジュールは、オブジェクト指向の API も提供しています。 この中に含まれるクラスは paradox_db だけです。 そのメソッドと関数の違いは、まず名前、 そしてもちろん最初のパラメータがないことです。 次の表に、すべてのメソッドとそれに対応する関数を示します。

表 1. paradox_db クラスのメソッド

メソッド名 同等な関数
コンストラクタ px_new()
デストラクタ px_delete()
open_fp() px_open_fp()
create_fp() px_create_fp()
close() px_close()
numrecords() px_numrecords()
numfields() px_numfields()
get_record() px_get_record()
put_record() px_put_record()
retrieve_record() px_retrieve_record()
delete_record() px_delete_record()
insert_record() px_insert_record()
update_record() px_update_record()
get_field() px_get_field()
get_schema() px_get_schema()
get_info() px_get_info()
set_parameter() px_set_parameter()
get_parameter() px_get_parameter()
set_value() px_set_value()
get_value() px_get_value()
get_info() px_get_info()
set_targetencoding() px_set_targetencoding()
set_tablename() px_set_tablename()
set_blob_file() px_set_blob_file()
date2string() px_date2string()
timestamp2string() px_timestamp2string()

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

以下のふたつの表で、paradox 拡張モジュールで定義されている全ての定数を示します。

表 2. フィールド型の定数

名前 意味
PX_FIELD_ALPHA 固定長の文字データ
PX_FIELD_DATE 日付。0000 年 1 月 1 日からの経過日数
PX_FIELD_SHORT Short 型の整数 (2 バイト)
PX_FIELD_LONG Long 型の整数 (4 バイト)
PX_FIELD_CURRENCY PX_FIELD_NUMBER と同じ
PX_FIELD_NUMBER Double
PX_FIELD_LOGICAL Boolean
PX_FIELD_MEMOBLOB バイナリラージオブジェクト
PX_FIELD_BLOB バイナリラージオブジェクト (サポートされません)
PX_FIELD_FMTMEMOBLOB バイナリラージオブジェクト
PX_FIELD_OLE OLE オブジェクト (基本的に blob です。サポートされません)
PX_FIELD_GRAPHIC 画像 (基本的に blob です。サポートされません)
PX_FIELD_TIME 時刻。深夜 0 時からの経過ミリ秒数
PX_FIELD_TIMESTAMP タイムスタンプ。0000 年 1 月 1 日からの経過ミリ秒数
PX_FIELD_AUTOINC 自動インクリメントの整数 (PX_FIELD_LONG と似ています)
PX_FIELD_BCD bcd フォーマットで保存された十進数 (サポートされません)
PX_FIELD_BYTES 255 バイトをこえないバイト配列 (サポートされません)
PX_KEYTOLOWER すべてのフィールド名を小文字にします
PX_KEYTOUPPER すべてのフィールド名を大文字にします

表 3. ファイル型の定数

名前 意味
PX_FILE_INDEX_DB インデックス化されたデータベース
PX_FILE_PRIM_INDEX プライマリインデックス
PX_FILE_NON_INDEX_DB インデックス化されていないデータベース
PX_FILE_NON_INC_SEC_INDEX インクリメンタルでないセカンダリインデックス
PX_FILE_SEC_INDEX セカンダリインデックス
PX_FILE_INC_SEC_INDEX インクリメンタルなセカンダリインデックス
PX_FILE_NON_INC_SEC_INDEX_G インクリメンタルでないセカンダリインデックス
PX_FILE_SEC_INDEX_G セカンダリインデックス
PX_FILE_INC_SEC_INDEX_G インクリメンタルなセカンダリインデックス

目次
px_close  -- paradox データベースを閉じる
px_create_fp  -- 新しい paradox データベースを作成する
px_date2string  --  日付を文字列に変換する
px_delete_record  -- paradox データベースからレコードを削除する
px_delete  -- paradox データベースのリソースを削除する
px_get_field  -- 単一のフィールドの仕様を返す
px_get_info  -- paradox ファイルに関する多くの情報を返す
px_get_parameter  -- パラメータを取得する
px_get_record  -- paradox データベースのレコードを返す
px_get_schema  -- データベーススキーマを返す
px_get_value  -- 値を取得する
px_insert_record  -- paradox データベースにレコードを挿入する
px_new  -- 新しい paradox オブジェクトを作成する
px_numfields  -- データベース内のフィールドの数を返す
px_numrecords  -- データベース内のレコードの数を返す
px_open_fp  -- paradox データベースをオープンする
px_put_record  -- paradox データベースにレコードを保存する
px_retrieve_record  -- paradox データベースのレコードを返す
px_set_blob_file  -- blob を読み込むファイル名を設定する
px_set_parameter  -- パラメータを設定する
px_set_tablename  -- テーブルの名前を設定する (非推奨)
px_set_targetencoding  -- 文字フィールドのエンコーディングを設定する (非推奨)
px_set_value  -- 値を設定する
px_timestamp2string  --  タイムスタンプを文字列に変換する
px_update_record  -- paradox データベースのレコードを更新する