pg_sendquery_prepared
Prev | 4.4.Asynchronous Query Processing Commands | Next

## pg_sendquery_prepared

pg_sendquery_prepared — 非同期実行の為に事前に準備されたsql命令を送る Send a pre-prepared SQL command to the server for asynchronous execution

## 構文 Synopsis

    pg_sendquery_prepared conn statementName resultFormats argFormats ?param...?

## 説明 Description

pg_sendquery_prepared は中央集中処理系上の名前付けされた事前準備されたsql命令の実行を始め､且つ､命令が完了する迄待たず､直ぐに戻る｡この命令は､引用問題なしに､引数をsql宣言文假引数に束縛し､生の二進データの送出しと受容れを運営する｡ pg_sendquery_prepared の構文はpg_exec_prepared と同じであり､それは同期問合せ実行の為のものである｡ `pg_sendquery_prepared` initiates execution of a pre-prepared SQL named statement on the server and returns immediately, without waiting for the command to complete. This command allows binding arguments to SQL statement parameters without quoting issues, and supports sending and receiving raw binary data. The syntax of `pg_sendquery_prepared` is the same as pg_exec_prepared which is for synchronous query execution.

## 引数 Arguments

`conn`

  命令を実行すべき接続の把持子｡ The handle of the connection on which to execute the command.

`statementName`

  事前準備された宣言文の名前｡ The name of the pre-prepared statement.

`resultFormats`

  問合せ結果が期待される書式｡平文の結果には T か TEXT を､二進書式結果には B か BINARY を使われたい｡もしこの假引数が空文字列の場合､ TEXT が仮定される｡ The format that the query results are expected in. Use `T` or `TEXT` for text format results, and `B` or `BINARY` for binary format results. If this parameter is an empty string, `TEXT` is assumed.

`argFormats`

  問合せ假引数が送り込まれる書式｡この假引数は空文字列でも､一つの語でも､リストでも好い｡もし假引数が空文字列であると､全ての假引数は平文書式で送込まれる｡もしこの假引数が一つの語の場合､全ての問合せ假引数について書式をしていする｡平文書式にはT (又は TEXT) を､二進書式にはB (又は BINARY) を使われたい｡もしこの假引数がリストの場合､それぞれの問合せ假引数に関する書式を指定して一つの語(T か TEXT か B か BINARY)を含まねばならない｡ The formats that the query parameters are sent in. This parameter can be an empty string, a single word, or a list. If this parameter is an empty string, all query parameters are sent in text format. If this parameter is a single word, it specifies the format for all query parameters. Use `T` (or `TEXT`) for text format, and `B` (or `BINARY`) for binary format. If this parameter is a list, it must contain a single word (`T` or `TEXT` or `B` or `BINARY`) specifying the format for each query parameter.

`param...`

  命令文字列場所占有子に束縛すべき零或はそれ以上の假引数の値｡最初の假引数は準備された問合わせ内の $1 を置換え､第二番目の引数は $2 を置換え､更に続く｡假引数は argFormats 引数に従って平文か二進化のデータとして解釈されることになる｡ Zero or more parameter values to bind to command string place-holders. The first parameter will replace `$1` in the prepared query, the second parameter will replace `$2`, etc. The parameters will be interpreted as text or binary data according to the `argFormats` argument.

## 返り値 Return Value

なし None.

もし不都合が生じるとTcl不都合が発せられる｡ A Tcl error will be thrown if an error occurs.

## Notes

宣言文は､ SQL PREPARE を伴って準備されねばならない､譬えば: The statement must be prepared with an SQL PREPARE command, for example:

        PREPARE statementName (INTEGER) AS SELECT * FROM mytable WHERE ID > $1

これは pg_exec か pg_execute によってデータベースに送られるかもしれない(但し､註意すべきは $1 は\$1の如くTclのついては除外されねばならない)｡準備された宣言文は対話期間の終り迄持続する｡ This can be sent to the database with `pg_exec` or `pg_execute` (but note that `$1` must be escaped for Tcl as `\$1`). Prepared statements persist until the end of a session.

命令が猶実行されているかを見るには pg_isbusyを使え｡結果を得るには､必要に応じて命令の完了を待ち､ pg_getresultを使え｡代りに､結果が準備できた時に実行される呼戻しを登録する為には pg_result_callbackを使え｡(即ち､pg_getresult が抑止されない時)｡ Use pg_isbusy to see if the command is still being executed. Use pg_getresult to get the result, waiting for the command to complete if necessary. Alternatively, use pg_result_callback to register a callback command to be executed when a result is ready (that is, when pg_getresult will not block).

`pg_sendquery_prepared` の命令構文は平文と二進数の結果の列の混合を運営するが､基になる PostgreSQL 外部函数 (libpq)は現在の処これを運営していない｡従って､全ての結果の列が文書書式か､全ての列が二進数の書式でなければならない｡ The command syntax of `pg_sendquery_prepared` supports mixed text and binary result columns, but the underlying PostgreSQL library (libpq) does not currently support this. Therefore, all result columns must be text format, or all columns must be binary format.

準備された宣言文にNULL値を渡すことは運営されていない｡ There is no support for passing NULL value arguments to prepared statements.

この命令は PostgreSQL libpq function `PQsendQueryPrepared`を使い模擬する｡ This command uses or emulates the PostgreSQL libpq function `PQsendQueryPrepared`.

### 警告 Caution

基のPgtcl 実装は同じ名前で互換性のない引数の命令を有する｡ The original Pgtcl implementation has a command with the same name but incompatible arguments.

Prev | Up | Next
pg_sendquery_params | Home | pg_isbusy