Forum und email

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) は、 » https://pxlib.sourceforge.net で取得できます。

インストール手順

この PECL 拡張モジュールをインストールする方法は、 マニュアルの PECL 拡張モジュールのインストール という章にあります。 新規リリース・ダウンロード・ソースファイル・管理者情報・CHANGELOG といった関連する情報については、次の場所にあります。 » https://pecl.php.net/package/paradox

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

実行時設定

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

オブジェクト指向の API

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

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()

リソース型

px_new() は新しい Paradox オブジェクトを作成します。 これは、すべての Paradox 関数で必要となります。

定義済み定数

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

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

フィールド型の定数
名前 意味
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 すべてのフィールド名を大文字にします
ファイル型の定数
名前 意味
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 インクリメンタルなセカンダリインデックス

目次