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

# 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 |

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