.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "PG_EXECUTE" "" "2004-06-19" "" "PostgreSQL 7.4.5 文書"
.SH NAME
pg_execute \- 問い合わせを送信し、オプションでその結果を繰り返し処理します。

.SH SYNOPSIS
.sp
.nf
pg_execute [-array \fIarrayVar\fR] [-oid \fIoidVar\fR] \fIconn\fR \fIcommandString\fR [\fIprocedure\fR]
.sp
.fi
.SH "説明"
.PP
\fBpg_execute\fRはコマンドをPostgreSQLサーバに送信します。
.PP
コマンドが\fBSELECT\fR文以外の場合、コマンドによって影響を受けた行数が返されます。
省略可能な\fI-oid\fR引数が指定された場合、コマンドが\fBINSERT\fR文、かつ、単一行が挿入された時、挿入された行のOIDが\fIoidVar\fR変数に格納されます。
.PP
コマンドが\fBSELECT\fR文の場合、その結果の各行に対して、\fIarrayVar\fR変数が指定された時はその変数内に行の値を列名を配列の添字に使用して格納します。
\fIarrayVar\fR変数の指定がない時は、列の名前を変数名とした変数の中に格納します。
その後省略可能な\fIprocedure\fRが指定されていれば、それが実行されます。
(おそらく\fIprocedure\fRの省略は、問い合わせが単一行を返す場合にのみ意味を持ちます。)
選択された行数が返されます。
.PP
\fIprocedure\fRでは、break、continue、return Tclコマンドを想定したとおりに使用することができます。
\fIprocedure\fRがreturnを実行すると、\fBpg_execute\fRは影響を受けた行数を返さなくなることに注意してください。
.PP
\fBpg_execute\fR は\fBpg_select\fR機能の上位セットを提供する新しい関数で、結果ハンドルへのアクセスを必要としない多くの場合で\fBpg_exec\fRを置き換えることができます。
.PP
サーバ側でのエラーでは、\fBpg_execute\fR はTclエラーと2要素からなるリストを返します。
最初の要素はPGRES_FATAL_ERRORといったエラーコードです。
2番目の要素はサーバエラーテキストです。
サーバとの通信に失敗したといった、より深刻なエラーの場合、\fBpg_execute\fR はTclエラーとエラーメッセージテキストのみを返します。
.SH "引数"
.TP
\fB-array \fIarrayVar\fB\fR
結果の行を格納する、列名を添字とした配列変数の名前を指定します。
\fIcommandString\fR が \fBSELECT\fR文以外の場合は無視されます。
.TP
\fB-oid \fIoidVar\fB\fR
\fBINSERT\fR文によってOIDが格納される変数の名前を指定します。
.TP
\fB\fIconn\fB\fR
コマンドを実行する接続のハンドルです。
.TP
\fB\fIcommandString\fB\fR
実行するSQLコマンドです。
.TP
\fB\fIprocedure\fB\fR
\fBSELECT\fR文の各結果行に対して実行されるプロシージャで、省略可能です。
.SH "戻り値"
.PP
コマンドによって影響を受けた、もしくは、返された行数です。
.SH "例"
.PP
以下の例では、簡略化のためにcatchを使用したエラーチェックを省略しています。
.PP
1行を挿入し、そのOIDをresult_oidに保存します。
.sp
.nf
pg_execute -oid result_oid $pgconn "INSERT INTO mytable VALUES (1);"
.sp
.fi
.PP
各行のitem と valueを表示します。
.sp
.nf
pg_execute -array d $pgconn "SELECT item, value FROM mytable;" {
    puts "Item=$d(item) Value=$d(value)"
}
.sp
.fi
.PP
最大値、最小値を見つけ、$s(max) と $s(min)に格納します。
.sp
.nf
pg_execute -array s $pgconn "SELECT max(value) AS max, min(value) AS min FROM mytable;"
.sp
.fi
.PP
最大値、最小値を見つけ、$max と $minに格納します。
.sp
.nf
pg_execute $pgconn "SELECT max(value) AS max, min(value) AS min FROM mytable;"
.sp
.fi
