明示的に述べられている場合を除き、ドライバからはすべてのフィールドが 読み込み専用となります。
* |
ドライバは、SKEL_handle_preparer() の中で これを設定しなければなりません。 |
** |
この項目はドライバが使用します。想定される使用法は、データベースとの 接続を保つために必要なインスタンスデータへのポインタを (SKEL_handle_factory() 内で) 格納することです。 |
*** |
ステートメントが最初に実行された後に、PDO がこれを設定します。 ドライバは、この値を調べることで初回にのみ必要な処理を飛ばす 最適化を行います。 |
**** |
詳細は 雛形への肉付け で説明します。 |
***** |
結果セット内のカラム数を、ドライバがこのフィールドに設定します。 通常これは SKEL_stmt_execute() で設定しますが、 データベースの実装によっては SKEL_stmt_fetch() を最低 1 回コールするまではカラム数がわからないことがあります。 SKEL_stmt_next_rowset() を実装するドライバで 新しい行セットが使用可能になった場合、ドライバはカラム数を更新する必要があります。 |
****** |
カラム数に設定した値に応じて、PDO がこのフィールドを確保します。 SKEL_stmt_describe() の中で、各カラムの内容を 設定する必要があります。各カラムについて設定する必要があるのは、 precision 、maxlen 、 name 、namelen および param_type です。 name は、emalloc() を使用して確保することが期待されています。PDO は、しかるべき時に efree() を実行します。 |