このドライバは次の操作モードをサポートしています。
表 62-1このドライバがサポートする操作モード
モード | サポートしている? |
---|---|
複数フィールドによる並べ替え | yes |
レコードの追加、更新および削除 | no |
このドライバは、以下のオプションを受け付けます。
表 62-2このドライバのオプション
オプション | 型 | 説明 | デフォルト値 |
---|---|---|---|
count_query | string | 行数を数えるクエリ。どのような場合にこれが必要となるのかについては、 以下を参照ください。 | '' |
db_options | array | 作成したデータベースオブジェクト用のオプション。 このオプションを使用するのは、'dsn' オプションを指定したときだけです。 | array() |
dbc | object | このドライバが使用する PEAR::MDB2 インスタンス。 このオプションか 'dsn' のいずれかが必須となります。 | null |
dsn | string | PEAR::MDB2 の dsn 文字列。このドライバが MDB2 接続を確立するために使用します。 このオプションか 'dbc' のいずれかが必須となります。 | null |
fields | array | データソースからどのフィールドを取得するか。空の配列を指定すると、 すべてのフィールドを取得します。 array(field1, field2, ...) 形式となります。 | array() |
generate_columns | bool | ラベルつきの Structures_DataGrid_Column オブジェクトを作成します。 'labels' オプションを参照ください。 非推奨: 代わりに Structures_DataGrid::generateColumns() を使用してください。 | false |
labels | array | データフィールドとラベルの対応。 'generate_columns' が true の場合にのみ使用します。 array(field => label, ...) 形式となります。 非推奨: 代わりに Structures_DataGrid::generateColumns() を使用してください。 | array() |
primaryKey | array | レコードを一意に決定する識別子を含むフィールドの名前、 あるいは数値インデックス (複数のフィールドを指定するのは、 複合主キーの場合のみです)。 | null |
このドライバを使用するには、MDB2 インスタンスか MDB2 で使用できる dsn 文字列のいずれかを指定しなければなりません。
複雑なクエリ (例えば複雑な join やエイリアスなど) を使用すると、$datagrid->getRecordCount() が間違った結果を返すことがあります。 クエリ内で GROUP BY や UNION、DISTINCT を使用している場合、 そしてサブクエリを使用している場合については ドライバで特別な対応をしています。しかし、もしレコード件数がおかしな値になるようなら、 レコード数だけを返すような特別なクエリ (例えば 'SELECT COUNT(*) FROM ...') を作成してください。をしてそれを bind() のコール時の追加オプション 'count_query' に指定します。
クエリ内で ORDER BY 文を指定することができます。この並べ替え処理は、 「すべての」クエリについて、レンダラからの並べ替え指定 (例えば、HTML_Table レンダラを使用している場合に カラムの見出しをクリックした際に HTTP リクエストとして送られます) がくる前に使用されることに注意しましょう。 HTTP リクエストで何も指定されなかった場合のデフォルトの並べ替え方法を指定したいのなら、 $datagrid->setDefaultSort() を使用してください。