XXIII. DB++ 関数
| 警告 |
この拡張モジュールは、 実験的 なものです。この拡張モジュールの動作・ 関数名・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP のリリースにおいて変更される可能性があります。 このモジュールは自己責任で使用してください。 |
導入
db++ は、ドイツの企業 Concept asa により作成された高性能でかつメモリ使用量とディスク使用量が 小さいことを特徴とするリレーショナルデータベースシステムです。 db++ では、SQL は補助的なインターフェイス原語として提供されており、 元来の SQL データベースであるわけではありませんが、SQL よりも 関係代数にはるかに強く影響された固有の AQL クエリ言語が提供されています。
Concept asa は、常にオープンソース言語のサポートに関心を持って 来ており、db++ は Perl、Tcl コールのインターフェイスを何年も前から有し、 Tcl を内部的なストアドプロシージャ言語として使用しています。
要件
この拡張モジュールは外部クライアントライブラリに依存しており、 この拡張モジュールを使用したいシステム上に db++ クライアントが インストールされている必要があります。
Concept asa が、 Linux および他のいくつかの Unix 版の db++ デモ版 および ドキュメント を 提供しています。また、Windows 版の db++ もありますが、 この拡張モジュールでは(まだ)サポートしていません。
インストール手順
この拡張モジュールをビルドするためには、db++ クライアントライブラリおよび ヘッダファイルがシステムにインストールされていることが必要です (db++ のインストールアーカイブには、これらがデフォルトで含まれています)。 この拡張モジュールをビルドするためには、configure の際にオプション --with-dbplus を設定する必要があります。
configure は、クライアントライブラリおよびヘッダファイルを デフォルトのパス /usr/dbplus、 /usr/local/dbplus および /opt/dblus から探します。もし db++ を別の場所にインストールしている場合、 以下のようにしてインストール場所を configure オプションに 指定する必要があります。 --with-dbplus=/your/installation/path
実行時設定
設定ディレクティブは定義されていません。
リソース型
dbplus_relation
多くの db++ 関数は、dbplus_relation リソースを 操作または返します。 dbplus_relation は、保存された関係または クエリの結果として生成された関係へのハンドルです。
定義済み定数
以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
db++ エラーコード
表 1. DB++ エラーコード
| PHP 定数 | db++ 定数 | 意味 |
|---|---|---|
| DBPLUS_ERR_NOERR (integer) | ERR_NOERR | Null エラー条件 |
| DBPLUS_ERR_DUPLICATE (integer) | ERR_DUPLICATE | 重複するタプルを挿入した |
| DBPLUS_ERR_EOSCAN (integer) | ERR_EOSCAN | rget()からスキャン終了 |
| DBPLUS_ERR_EMPTY (integer) | ERR_EMPTY | 関係が空(サーバ) |
| DBPLUS_ERR_CLOSE (integer) | ERR_CLOSE | サーバをクローズできない |
| DBPLUS_ERR_WLOCKED (integer) | ERR_WLOCKED | レコードは書き込みロックされている |
| DBPLUS_ERR_LOCKED (integer) | ERR_LOCKED | 関係は既にロックされている |
| DBPLUS_ERR_NOLOCK (integer) | ERR_NOLOCK | 関係をロックできない |
| DBPLUS_ERR_READ (integer) | ERR_READ | 関係の読み込みエラー |
| DBPLUS_ERR_WRITE (integer) | ERR_WRITE | 関係の書き込みエラー |
| DBPLUS_ERR_CREATE (integer) | ERR_CREATE | create() システムコールが失敗 |
| DBPLUS_ERR_LSEEK (integer) | ERR_LSEEK | lseek() システムコールが失敗 |
| DBPLUS_ERR_LENGTH (integer) | ERR_LENGTH | 最大長を越えるタプル |
| DBPLUS_ERR_OPEN (integer) | ERR_OPEN | open() システムコールが失敗 |
| DBPLUS_ERR_WOPEN (integer) | ERR_WOPEN | 関係は既に書き込みオープンされている |
| DBPLUS_ERR_MAGIC (integer) | ERR_MAGIC | ファイルは関係でない |
| DBPLUS_ERR_VERSION (integer) | ERR_VERSION | ファイルは非常に古い関係である |
| DBPLUS_ERR_PGSIZE (integer) | ERR_PGSIZE | 関係は異なったページサイズを使用している |
| DBPLUS_ERR_CRC (integer) | ERR_CRC | 不正な CRC がスーパーページにある |
| DBPLUS_ERR_PIPE (integer) | ERR_PIPE | パイプ上の関係は lseek() を要求している |
| DBPLUS_ERR_NIDX (integer) | ERR_NIDX | セカンダリインデックスが多すぎる |
| DBPLUS_ERR_MALLOC (integer) | ERR_MALLOC | malloc() コールが失敗した |
| DBPLUS_ERR_NUSERS (integer) | ERR_NUSERS | 最大ユーザ数エラー |
| DBPLUS_ERR_PREEXIT (integer) | ERR_PREEXIT | 無効な使用法により発生 |
| DBPLUS_ERR_ONTRAP (integer) | ERR_ONTRAP | シグナルにより発生 |
| DBPLUS_ERR_PREPROC (integer) | ERR_PREPROC | プリプロセッサにおけるエラー |
| DBPLUS_ERR_DBPARSE (integer) | ERR_DBPARSE | パーサ上のエラー |
| DBPLUS_ERR_DBRUNERR (integer) | ERR_DBRUNERR | dbにおける実行エラー |
| DBPLUS_ERR_DBPREEXIT (integer) | ERR_DBPREEXIT | prexit() * プロシージャにより発生した終了条件 |
| DBPLUS_ERR_WAIT (integer) | ERR_WAIT | 少し待つ(simple のみ) |
| DBPLUS_ERR_CORRUPT_TUPLE (integer) | ERR_CORRUPT_TUPLE | クライアントが壊れたタプルを送信した |
| DBPLUS_ERR_WARNING0 (integer) | ERR_WARNING0 | simple ルーチンが、修正済みの致命的でないエラーを発見した |
| DBPLUS_ERR_PANIC (integer) | ERR_PANIC | サーバは実際に実行中断していないが、全てのクライアントに ERR_PANIC が送信された |
| DBPLUS_ERR_FIFO (integer) | ERR_FIFO | fifo を作成できない |
| DBPLUS_ERR_PERM (integer) | ERR_PERM | 不許可 |
| DBPLUS_ERR_TCL (integer) | ERR_TCL | TCL_error |
| DBPLUS_ERR_RESTRICTED (integer) | ERR_RESTRICTED | ユーザ二人のみ |
| DBPLUS_ERR_USER (integer) | ERR_USER | アプリケーションプログラマによるライブラリの使用エラー |
| DBPLUS_ERR_UNKNOWN (integer) | ERR_UNKNOWN |
- 目次
- dbplus_add -- 関係にタプルを追加する
- dbplus_aql -- AQL クエリを実行する
- dbplus_chdir -- データベース仮想カレントディレクトリを設定/取得
- dbplus_close -- 関係を閉じる
- dbplus_curr -- 関係からカレントのタプルを取得
- dbplus_errcode -- 指定したエラーコードまたは直近のエラーに関するエラー文字列を取得 する
- dbplus_errno -- 直近の操作に関するエラーコードを取得する
- dbplus_find -- 関係に拘束を設定する
- dbplus_first -- 関係から最初のタプルを取得する
- dbplus_flush -- 関係に行った全ての変更をフラッシュする
- dbplus_freealllocks -- このクライアントにより保持された全てのロックを解放する
- dbplus_freelock -- タプルの書き込みロックを解放する
- dbplus_freerlocks -- 指定した関係に関する全てのタプルロックを解放する
- dbplus_getlock -- タプルの書き込みロックを取得する
- dbplus_getunique -- ある関係のユニークな ID 番号を取得する
- dbplus_info -- 関係についての情報を取得する
- dbplus_last -- 関係から直近のタプルを取得する
- dbplus_lockrel -- 関係に書き込みロックを要求する
- dbplus_next -- 関係から次のタプルを取得する
- dbplus_open -- 関係ファイルをオープンする
- dbplus_prev -- 関係から前のタプルを取得する
- dbplus_rchperm -- 関係の許可属性を変更する
- dbplus_rcreate -- 関係を新規に作成する
- dbplus_rcrtexact -- インデックスを含む、関係の空のコピーを作成する
- dbplus_rcrtlike -- デフォルトのインデックスで、関係の空のコピーを作成する
- dbplus_resolve -- 関係のホスト情報を取得する
- dbplus_restorepos -- 位置を復元する
- dbplus_rkeys -- 関係の主キーを新規に指定する
- dbplus_ropen -- 関係ファイルをローカルにオープンする
- dbplus_rquery -- ローカル(raw) AQL クエリを実行する
- dbplus_rrename -- 関係の名前を変更する
- dbplus_rsecindex -- 関係に新規セカンダリインデックスを作成する
- dbplus_runlink -- ファイルシステムから関係を削除する
- dbplus_rzap -- 関係から全てのタプルを削除する
- dbplus_savepos -- 位置を保存する
- dbplus_setindex -- インデックスを設定する
- dbplus_setindexbynumber -- インデックスを数字で設定する
- dbplus_sql -- SQL クエリを実行する
- dbplus_tcl -- サーバ側で TCL コードを実行する
- dbplus_tremove -- タプルを削除し、新規カレントタプルを返す
- dbplus_undo -- 元に戻す
- dbplus_undoprepare -- 元に戻す準備をする
- dbplus_unlockrel -- 関係の書き込みロックを中断する
- dbplus_unselect -- 関係から制約を削除する
- dbplus_update -- 関係の指定したタプルを更新する
- dbplus_xlockrel -- 関係の排他的ロックを要求する
- dbplus_xunlockrel -- 関係の排他的ロックを解放する
