PHP マニュアル
前のページ |  | 次のページ

# XXI. 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++のクライアント ライブラリとヘッダファイルが上記のようにシステムにインストール されていることが必要です。この拡張モジュールを構築するには、 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` | 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 |

前のページ | ホーム | 次のページ
dbx_sort | 上に戻る | dbplus_add