[pgsql-jp: 36451] Re: SQLは「実行」?「発行」?

ISHIDA Akio iakio @ mono-space.net
2005年 11月 28日 (月) 15:30:18 JST


こんにちは。石田@苫小牧市です。

だいたいみなさんと同じ意見です。
o SQLはサーバーが"実行"する
o クライアントはSQLを"発行"する。
o でも、クライアントがSQLを"発行"して結果を取得することを
  "SQLを実行する"といっても良いと思います。

nomoto wrote:
>   nomotoです。
> 
> SQL文字列をデータベースエンジンに送るわけで、挙動として
> は「送信」なのではないかと思いますが、何かを行わせて結果
> を得るという広い意味では「実行」であっているのではない
> でしょうか。

平野さんは libpq の PQexec の例を挙げれらていましたが、
この関数が
http://www.postgresql.jp/document/current/html/libpq-exec.html
----
サーバにコマンドを送信し、その結果を待ちます。
----
と、この関数の実行で結果待つので、"実行"のイメージに近いと思います。

対して、libpq には非同期のコマンド PQsendQuery もあります。
http://www.postgresql.jp/document/current/html/libpq-async.html
----
結果を待つことなく、サーバにコマンドを発行します。コマンドの登録に成功し
た場合1が、失敗した場合0が返されます。
----
と、こちらは"発行"のイメージに近いと思います。

> 
> 「発行」というと広く一般に向けて・・というような意味が含まれ
> てるので、SQL文を送り出す行為とはちょっと違うように思います。
> 
> SQL文をexecuteでいきなり使うと意味が混乱しますが、
> プレースホルダを使う場合のように、先にSQL文をprepare「準備」
> して、execute「実行」するような場合はまさに「実行」があって
> いるのではないでしょうか。
> 
> 




pgsql-jp メーリングリストの案内