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_NOERRNull エラー条件
DBPLUS_ERR_DUPLICATE (integer) ERR_DUPLICATE重複するタプルを挿入した
DBPLUS_ERR_EOSCAN (integer) ERR_EOSCANrget()からスキャン終了
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_CREATEcreate() システムコールが失敗
DBPLUS_ERR_LSEEK (integer) ERR_LSEEKlseek() システムコールが失敗
DBPLUS_ERR_LENGTH (integer) ERR_LENGTH最大長を越えるタプル
DBPLUS_ERR_OPEN (integer) ERR_OPENopen() システムコールが失敗
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_MALLOCmalloc() コールが失敗した
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_DBRUNERRdbにおける実行エラー
DBPLUS_ERR_DBPREEXIT (integer) ERR_DBPREEXITprexit() * プロシージャにより発生した終了条件
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_FIFOfifo を作成できない
DBPLUS_ERR_PERM (integer) ERR_PERM不許可
DBPLUS_ERR_TCL (integer) ERR_TCLTCL_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 -- 新しい DB++ リレーションを作成する
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 -- リレーションの排他的ロックを解放する