.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "SPI_prepare" "" "2005-01-19" "" "PostgreSQL 8.0.2 文書"
.SH NAME
SPI_prepare \- コマンドの計画を準備します。コマンドの実行はまだ行ないません。

.SH SYNOPSIS
.sp
.nf
void * SPI_prepare(const char * \fIcommand\fR, int \fInargs\fR, Oid * \fIargtypes\fR)
.sp
.fi
.SH "説明"
.PP
\fBSPI_prepare\fR は指定したコマンド用の実行計画を作成し、それを返します。
しかし、そのコマンドは実行しません。
この関数は接続済のプロシージャからのみ呼び出さなければなりません。
.PP
同じ、あるいは、類似のコマンドが繰返し実行される場合、一度だけ計画作成を行なうことに利点があります。
\fBSPI_prepare\fR はコマンド文字列を、\fBSPI_execute_plan\fRを使用して繰返し実行することができる実行計画に変換します。
.PP
準備されたコマンドは、通常のコマンド内の定数となる場所を($1、$2などの)パラメータで記述することで一般化することができます。
そしてパラメータの実際の値は、\fBSPI_execute_plan\fR が呼び出される時に指定されます。
これにより、準備されたコマンドは、パラメータがない場合に比べ、より広範な状況で使用できるようになります。
.PP
\fBSPI_finish\fRは計画用に割り当てられたメモリを解放しますので、\fBSPI_prepare\fRで返される計画は、そのプロシージャの現在の呼び出し内でのみ使用することができます。
しかし、\fBSPI_saveplan\fR関数を使用して長期間計画を保存することもできます。
.SH "引数"
.TP
\fBconst char * \fIcommand\fB\fR
コマンド文字列。
.TP
\fBint \fInargs\fB\fR
($1、$2など)入力パラメータ数。
.TP
\fBOid * \fIargtypes\fB\fR
パラメータのデータ型のOIDを持つ配列へのポインタ。
.SH "戻り値"
.PP
\fBSPI_prepare\fRは、実行計画への非ヌルのポインタを返します。
エラーの場合、\fBNULL\fRが返され、\fBSPI_execute\fRで使用されるエラーコードと同じコードの1つがSPI_resultに設定されます。
しかし、\fIcommand\fRが\fBNULL\fRの場合や、\fInargs\fRが0未満の場合、\fInargs\fRが0より大きくかつ\fIargtypes\fRが\fBNULL\fRの場合は、\fBSPI_ERROR_ARGUMENT\fRに設定されます。
.SH "注意"
.PP
パラメータを使用する場合欠点があります。
プランナはパラメータに与えられる値が何であるかを理解しませんので、全ての定数が可視である単純な問い合わせで作成されるものより、問い合わせ計画の選択が悪化する可能性があります。
