XXIIDB++ 関数

警告

このモジュールは、 実験的 なものです。これは、これらの関数の動作、関数名は、このドキュメントに書かれて事項と同様に告知なく将来的なPHPのリリースで変更される可能性があります。注意を喚起するとともに、このモジュールは使用者のリスクで使用して下さい。

導入

db++は、ドイツの企業 Concept asa により作成された高性能でかつメモリ使用量とディスク使用 量が小さいことを特徴とするリレーショナルデータベースシステムです。 db++では、SQLは補助的なインターフェイス原語として提供されており、 元来のSQLデータベースであるわけではありませんが、SQLよりも関係代 数にはるかに強く影響された固有のAQLクエリ言語が提供されています。

Concept asaは、常にオープンソース言語のサポートに関心を持って来て おり、db++はPerl、Tclコールのインターフェイスを何年も前から有し、 Tclを内部的なストアドプロシージャ言語として使用しています。

要件

この拡張モジュールは外部クライアントライブラリに依存しており、こ の拡張モジュールを使用したいシステム上にdb++クライアントがインス トールされている必要があります。

Concept asa が、 Linux及び他のいくつかのUNIX版の db++デモ版 および ドキュメント を 提供しています。また、Windows版の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++エラーコード

表 1DB++エラーコード

PHP定数 db++定数 意味
DBPLUS_ERR_NOERR 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を作成できない 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 -- 関係の排他的ロックを解放する