<Chapter Id="pgtcl">
<!-- <Title>pgtcl - TCL Binding Library</Title> -->
<Title>pgtcl――TCL結合ライブラリ</Title>
<indexterm><primary>pgtcl</primary></indexterm>
<indexterm><primary>PostgreSQL</primary><secondary>TCL</secondary></indexterm>
<indexterm><primary>TCL</primary></indexterm>

<para>
<!-- <literal>pgtcl</literal> is a tcl package for front-end programs 
to interface with <ProductName>Postgres</ProductName>
backends.  It makes most of the functionality of <literal>libpq</literal> available to tcl scripts. -->

<literal>pgtcl</literal>は、<ProductName>Postgres</ProductName>バックエンドとインターフェイスを持つフロントエンドプログラム用のtclパッケージです。これによりlibpqのほとんどの機能をtclスクリプトから使用できるようになります。
</para>

<para>
<!-- This package was originally written by Jolly Chen. -->
このパッケージは元々Jolly Chenによって作成されたものです。

</para>

<Sect1 id="libpgtcl-commands">
<!-- <Title>Commands</Title> -->
<Title>コマンド</Title>

<table tocentry="1">
<TITLE><literal>pgtcl</literal><!-- Commands-->コマンド</TITLE>
<TGROUP COLS="2">
<THEAD>
  <ROW>
    <!-- <ENTRY>Command</ENTRY>
    <ENTRY>Description</ENTRY> -->

    <ENTRY>コマンド</ENTRY>
    <ENTRY>説明</ENTRY>

  </ROW>
</THEAD>
<TBODY>
  <ROW>
    <ENTRY>pg_connect<indexterm><primary>pg_connect()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_connect()</secondary></indexterm></ENTRY>
    <!-- <ENTRY>opens a connection to the backend server</ENTRY> -->
    <ENTRY>バックエンドサーバーとの接続を開く</ENTRY>
  </ROW>
  <ROW>
    <ENTRY>pg_disconnect<indexterm><primary>pg_disconnect()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_disconnect()</secondary></indexterm></ENTRY>
    <!-- <ENTRY>closes a connection</ENTRY> -->
    <ENTRY>接続を閉じる</ENTRY>
  </ROW>
  <ROW>
    <ENTRY>pg_conndefaults<indexterm><primary>pg_conndefaults()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_conndefaults()</secondary></indexterm></ENTRY>
    <!-- <ENTRY>get connection options and their defaults</ENTRY> -->
    <ENTRY>接続オプションとそのデフォルト値を得る</ENTRY>
  </ROW>
  <ROW>
    <ENTRY>pg_exec<indexterm><primary>pg_exec()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_exec()</secondary></indexterm></ENTRY>
    <!-- <ENTRY>send a query to the backend</ENTRY> -->
    <ENTRY>バックエンドに問い合わせを送信する</ENTRY>
  </ROW>
  <ROW>
    <ENTRY>pg_result<indexterm><primary>pg_result()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_result()</secondary></indexterm></ENTRY>
    <!-- <ENTRY>manipulate the results of a query</ENTRY> -->
    <ENTRY>問い合わせの結果を操作する</ENTRY>
  </ROW>
  <ROW>
    <ENTRY>pg_select<indexterm><primary>pg_select()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_select()</secondary></indexterm></ENTRY>
    <!-- <ENTRY>loop over the result of a SELECT statement</ENTRY> -->
    <ENTRY>SELECT文の結果をくり返し処理する</ENTRY>
  </ROW>
  <ROW>
    <ENTRY>pg_listen<indexterm><primary>pg_listen()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_listen()</secondary></indexterm></ENTRY>
    <!-- <ENTRY>establish a callback for NOTIFY messages</ENTRY> -->
    <ENTRY>NOTIFYメッセージ用のコールバックを確立する</ENTRY>
  </ROW>

  <ROW>
    <ENTRY>pg_lo_creat<indexterm><primary>pg_lo_creat()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_creat()</secondary></indexterm></ENTRY>
    <!-- <ENTRY>create a large object</ENTRY> -->
    <ENTRY>ラージオブジェクトを作成する</ENTRY>
  </ROW>
  <ROW>
    <ENTRY>pg_lo_open<indexterm><primary>pg_lo_open()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_open()</secondary></indexterm></ENTRY>
    <!-- <ENTRY>open a large object</ENTRY> -->
    <ENTRY>ラージオブジェクトを開く</ENTRY>
  </ROW>
  <ROW>
    <ENTRY>pg_lo_close<indexterm><primary>pg_lo_close()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_close()</secondary></indexterm></ENTRY>
    <!-- <ENTRY>close a large object</ENTRY> -->
    <ENTRY>ラージオブジェクトを閉じる</ENTRY>

  </ROW>
  <ROW>
    <ENTRY>pg_lo_read<indexterm><primary>pg_lo_read()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_read()</secondary></indexterm></ENTRY>
    <!-- <ENTRY>read a large object</ENTRY> -->
    <ENTRY>ラージオブジェクトを読む</ENTRY>

  </ROW>
  <ROW>
    <ENTRY>pg_lo_write<indexterm><primary>pg_lo_write()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_write()</secondary></indexterm></ENTRY>
    <!-- <ENTRY>write a large object</ENTRY> -->
    <ENTRY>ラージオブジェクトに書き込む</ENTRY>
  </ROW>
  <ROW>
    <ENTRY>pg_lo_lseek<indexterm><primary>pg_lo_lseek()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_lseek()</secondary></indexterm></ENTRY>
    <!-- <ENTRY>seek to a position in a large object</ENTRY> -->
    <ENTRY>ラージオブジェクトの位置をシークする</ENTRY>

  </ROW>
  <ROW>
    <ENTRY>pg_lo_tell<indexterm><primary>pg_lo_tell()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_tell()</secondary></indexterm></ENTRY>
    <!-- <ENTRY>return the current seek position of a large object</ENTRY> -->
    <ENTRY>ラージオブジェクトの現在のシーク位置を返す</ENTRY>
  </ROW>
  <ROW>
    <ENTRY>pg_lo_unlink<indexterm><primary>pg_lo_unlink()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_unlink()</secondary></indexterm></ENTRY>
    <!-- <ENTRY>delete a large object</ENTRY> -->
    <ENTRY>ラージオブジェクトを削除する</ENTRY>

  </ROW>
  <ROW>
    <ENTRY>pg_lo_import<indexterm><primary>pg_lo_import()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_import()</secondary></indexterm></ENTRY>
    <!-- <ENTRY>import a Unix file into a large object</ENTRY> -->
    <ENTRY>Unixファイルをラージオブジェクトにインポートする</ENTRY>
  </ROW>
  <ROW>
    <ENTRY>pg_lo_export<indexterm><primary>pg_lo_export()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_export()</secondary></indexterm></ENTRY>
    <!-- <ENTRY>export a large object into a Unix file</ENTRY> -->
    <ENTRY>ラージオブジェクトをUnixファイルにエキスポートする</ENTRY>
  </ROW>
</TBODY>
</TGROUP>
</TABLE>

<para>
<!-- These commands are described further on subsequent pages. -->
これらのコマンドの詳細は後ほど解説します。
</para>

<para>
<!-- 
The pg_lo* routines are interfaces to the Large Object features of
<ProductName>Postgres</ProductName>.
The functions are designed to mimic the analogous file system functions in
the standard Unix file system interface.
The pg_lo* routines should be used within a BEGIN/END transaction
block because the file descriptor returned by pg_lo_open is only valid for
the current transaction.  pg_lo_import and pg_lo_export MUST be used
in a BEGIN/END transaction block. -->

pg_lo*処理は、<ProductName>Postgres</ProductName>のラージオブジェクト機能へのインターフェイスです。それらの関数は標準的なUnixファイルシステムインターフェイス用のファイルシステム関数を真似して設計されています。pg_lo_openで返されるファイル記述子が現時点のトランザクションに対してのみ効力を持っていますので、pg_lo*処理はBEGIN/ENDトランザクションブロックの中で使用されなければいけません。特に、pg_lo_importとpg_lo_exportは必ずBEGIN/ENDトランザクションブロック内で使わなければいけません。<indexterm><primary>PostgreSQL</primary><secondary sortas="らーじおぶじぇくと">ラージオブジェクト</secondary></indexterm>
</para>

</Sect1>

<Sect1 id="libpgtcl-examples">
<!-- <Title>Examples</Title>-->
<Title>例</Title>

<para>
<!-- Here's a small example of how to use the routines: -->
これらの処理を使った小さな例を示します。
</para>

<programlisting>
# getDBs :
<!-- #   get the names of all the databases at a given host and port number
#   with the defaults being the localhost and port 5432
#   return them in alphabetical order -->
#   指定ホストとポート番号で動作している全データベース名を得ます。
#   デフォルト値は localhost と 5432 ポートです。
#   アルファベット順に結果を返します。

proc getDBs { {host "localhost"} {port "5432"} } {
    # datnames is the list to be result
    set conn [pg_connect template1 -host $host -port $port]
    set res [pg_exec $conn "SELECT datname FROM pg_database ORDER BY datname"]
    set ntups [pg_result $res -numTuples]
    for {set i 0} {$i < $ntups} {incr i} {
	lappend datnames [pg_result $res -getTuple $i]
    }
    pg_result $res -clear
    pg_disconnect $conn
    return $datnames
}
</programlisting>

</Sect1>

<Sect1 id="libpgtcl-ref">
<!-- <Title>pgtcl Command Reference Information</Title> -->
<Title>pgtclコマンドリファレンス</Title>

<REFENTRY ID="PGTCL-PGCONNECT">
<REFMETA>
<REFENTRYTITLE>pg_connect</REFENTRYTITLE>

<!-- <REFMISCINFO>PGTCL - Connection Management</REFMISCINFO> -->
<REFMISCINFO>PGTCL――接続管理</REFMISCINFO>

</REFMETA>
<REFNAMEDIV>
<REFNAME>pg_connect
</REFNAME>
<REFPURPOSE><!-- opens a connection to the backend server -->

バックエンドサーバーへの接続を開きます。<indexterm><primary>pg_connect()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_connect()</secondary></indexterm><indexterm><primary>PostgreSQL</primary><secondary sortas="さーばーへのせつぞく">サーバーへの接続</secondary></indexterm>

</REFPURPOSE>
<!--<INDEXTERM ID="IX-PGTCL-PGCONNECT-1"><PRIMARY>pgtcl</PRIMARY><SECONDARY>connecting</SECONDARY></INDEXTERM>-->
<!--<INDEXTERM ID="IX-PGTCL-PGCONNECT-2"><PRIMARY>pg_connect</PRIMARY></INDEXTERM>-->
</REFNAMEDIV>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1997-12-24</DATE>
</REFSYNOPSISDIVINFO>
<synopsis>
pg_connect -conninfo <REPLACEABLE CLASS="PARAMETER">connectOptions</REPLACEABLE>
pg_connect <REPLACEABLE CLASS="PARAMETER">dbName</REPLACEABLE> <OPTIONAL>-host <REPLACEABLE CLASS="PARAMETER">hostName</REPLACEABLE></OPTIONAL>
  <OPTIONAL>-port <REPLACEABLE
  CLASS="PARAMETER">portNumber</REPLACEABLE></OPTIONAL> <OPTIONAL>-tty <REPLACEABLE
  CLASS="PARAMETER">pqtty</REPLACEABLE></OPTIONAL>
  <OPTIONAL>-options <REPLACEABLE
  CLASS="PARAMETER">optionalBackendArgs</REPLACEABLE></OPTIONAL>
</SYNOPSIS>

<REFSECT2 ID="R2-PGTCL-PGCONNECT-1">
<REFSECT2INFO>
<DATE>1998-10-07</DATE>
</REFSECT2INFO>
<TITLE><!-- Inputs (new style) -->入力（新しい方式）
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">connectOptions</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- 
A string of connection options, each written in the form keyword = value.
A list of valid options can be found in <filename>libpq</>'s
<function>PQconnectdb()</> manual entry. -->

一連の接続オプションで、それぞれが「キーワード = 値」という型式で書かれています。

</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>

<REFSECT2 ID="R2-PGTCL-PGCONNECT-2">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Inputs (old style) -->入力（古い方式）
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">dbName</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies a valid database name. -->
有効なデータベース名を指定します。
</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <OPTIONAL>-host <REPLACEABLE CLASS="PARAMETER">hostName</REPLACEABLE></OPTIONAL>
</TERM>
<LISTITEM>
<para><!-- Specifies the domain name of the backend server for <REPLACEABLE CLASS="PARAMETER">dbName</REPLACEABLE>. -->

<REPLACEABLE CLASS="PARAMETER">dbName</REPLACEABLE>のためのバックエンド
サーバーのドメイン名を指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <OPTIONAL>-port <REPLACEABLE CLASS="PARAMETER">portNumber</REPLACEABLE></OPTIONAL>
</TERM>
<LISTITEM>
<para><!-- Specifies the IP port number of the backend server for 
<REPLACEABLE CLASS="PARAMETER">dbName</REPLACEABLE>. -->

<REPLACEABLE CLASS="PARAMETER">dbName</REPLACEABLE>のためのバックエンドサーバーのIPポート番号を指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <OPTIONAL>-tty <REPLACEABLE CLASS="PARAMETER">pqtty</REPLACEABLE></OPTIONAL>
</TERM>
<LISTITEM>
<para><!-- Specifies file or tty for optional debug output from backend. -->
バックエンドからのオプションデバッグ出力のためのファイルかttyを指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <OPTIONAL>-options <REPLACEABLE CLASS="PARAMETER">optionalBackendArgs</REPLACEABLE></OPTIONAL>
</TERM>
<LISTITEM>
<para>
<!-- 
Specifies options for the backend server for 
<REPLACEABLE CLASS="PARAMETER">dbName</REPLACEABLE>. -->

<REPLACEABLE CLASS="PARAMETER">dbName</REPLACEABLE>のためのバックエンドサーバーのオプションを指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>

<REFSECT2 ID="R2-PGTCL-PGCONNECT-3">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Outputs -->出力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">dbHandle</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- If successful, a handle for a database connection is returned.
Handles start with the prefix "pgsql". -->

成功すれば、データベース接続のハンドルが返されます。ハンドルは接頭辞"pgsql"で始まります。

</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>
</REFSYNOPSISDIV>

<!-- ********************************************************** -->

<REFSECT1 ID="R1-PGTCL-PGCONNECT-1">
<REFSECT1INFO>
<DATE>1997-12-24</DATE>
</REFSECT1INFO>
<TITLE><!-- Description -->説明
</TITLE>
<para><!-- <FUNCTION>pg_connect</FUNCTION> opens a connection to the
<ProductName>Postgres</ProductName> backend. -->

<FUNCTION>pg_connect</FUNCTION>は、<ProductName>Postgres</ProductName>バックエンドへの接続を開きます。

</para>

<para>
<!-- 
Two syntaxes are available.  In the older one, each possible option
has a separate option switch in the pg_connect statement.  In the
newer form, a single option string is supplied that can contain
multiple option values.  See <FUNCTION>pg_conndefaults</FUNCTION>
for info about the available options in the newer syntax. -->

2つの構文を使うことができます。古い方では、それぞれの可能なオプションがpg_connect文の中で別のオプションスイッチを持っています。新しい方では、複数のオプション値を含むことができる単一のオプション文字列が供給されています。新しい構文で使用可能なオプションについては<FUNCTION>pg_conndefaults</FUNCTION>を見てください。

</para>
</REFSECT1>
<!--<REFSECT1 ID="R1-PGTCL-PGCONNECT-2">
<TITLE>--><!-- Usage -->
<!--使用方法
</TITLE>
<para>XXX thomas 1997-12-24
</para>
</REFSECT1>-->
</REFENTRY>

<REFENTRY ID="PGTCL-PGDISCONNECT">
<REFMETA>
<REFENTRYTITLE>pg_disconnect</REFENTRYTITLE>
<REFMISCINFO>PGTCL - Connection Management</REFMISCINFO>
</REFMETA>
<REFNAMEDIV>
<REFNAME>pg_disconnect
</REFNAME>
<REFPURPOSE><!-- closes a connection to the backend server -->
バックエンドサーバーとの接続を閉じます。<indexterm><primary>pg_disconnect()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_disconnect()</secondary></indexterm><indexterm><primary>PostgreSQL</primary><secondary sortas="サーバーからのせつだん">サーバーからの切断</secondary></indexterm>
</REFPURPOSE>
<!--<INDEXTERM ID="IX-PGTCL-PGDISCONNECT-1"><PRIMARY>pgtcl</PRIMARY><SECONDARY>connecting</SECONDARY></INDEXTERM>-->
<!--<INDEXTERM ID="IX-PGTCL-PGDISCONNECT-2"><PRIMARY>pg_connect</PRIMARY></INDEXTERM>-->
</REFNAMEDIV>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1997-12-24</DATE>
</REFSYNOPSISDIVINFO>
<synopsis>
pg_disconnect <REPLACEABLE CLASS="PARAMETER">dbHandle</REPLACEABLE>
</SYNOPSIS>

<REFSECT2 ID="R2-PGTCL-PGDISCONNECT-1">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Inputs -->入力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">dbHandle</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies a valid database handle. -->
有効なデータベースハンドルを指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>

<REFSECT2 ID="R2-PGTCL-PGDISCONNECT-2">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Outputs -->出力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <!-- None -->なし
</TERM>
<LISTITEM>
<para>
</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>
</REFSYNOPSISDIV>

<REFSECT1 ID="R1-PGTCL-PGDISCONNECT-1">
<REFSECT1INFO>
<DATE>1997-12-24</DATE>
</REFSECT1INFO>
<TITLE><!-- Description -->説明
</TITLE>
<para>
<!-- 
<FUNCTION>pg_disconnect</FUNCTION> closes a connection to the 
<ProductName>Postgres</ProductName> backend. -->
<FUNCTION>pg_disconnect</FUNCTION>は、<ProductName>Postgres</ProductName>バックエンドへの接続を閉じます。

</para>
</REFSECT1>

</REFENTRY>




<REFENTRY ID="PGTCL-PGCONNDEFAULTS">
<REFMETA>
<REFENTRYTITLE>pg_conndefaults</REFENTRYTITLE>
<REFMISCINFO>PGTCL - Connection Management</REFMISCINFO>
</REFMETA>
<REFNAMEDIV>
<REFNAME>pg_conndefaults
</REFNAME>
<REFPURPOSE><!-- obtain information about default connection parameters -->
デフォルトの接続パラメータについての情報を入手します。<indexterm><primary>pg_conndefaults()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_conndefaults()</secondary></indexterm><indexterm><primary>PostgreSQL</primary><secondary sortas="でふぉるとのせつぞくぱらめーた">デフォルトの接続パラメータ</secondary></indexterm>
</REFPURPOSE>
<!--<INDEXTERM ID="IX-PGTCL-PGCONNDEFAULTS-1"><PRIMARY>pgtcl</PRIMARY><SECONDARY>connecting</SECONDARY></INDEXTERM>-->
<!--<INDEXTERM ID="IX-PGTCL-PGCONNDEFAULTS-2"><PRIMARY>pg_conndefaults</PRIMARY></INDEXTERM>-->
</REFNAMEDIV>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1998-10-07</DATE>
</REFSYNOPSISDIVINFO>
<synopsis>
pg_conndefaults
</SYNOPSIS>

<REFSECT2 ID="R2-PGTCL-PGCONNDEFAULTS-1">
<REFSECT2INFO>
<DATE>1998-10-07</DATE>
</REFSECT2INFO>
<TITLE><!-- Inputs -->入力
</TITLE>
<para>
<!-- None. -->なし
</para>
</REFSECT2>

<REFSECT2 ID="R2-PGTCL-PGCONNDEFAULTS-2">
<REFSECT2INFO>
<DATE>1998-10-07</DATE>
</REFSECT2INFO>
<TITLE><!-- Outputs -->出力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
<!--<REPLACEABLE CLASS="PARAMETER">--><!-- option list -->
オプションのリスト<!--</REPLACEABLE> -->

</TERM>
<LISTITEM>
<para>
<!-- 
The result is a list describing the possible connection options and their
current default values.
Each entry in the list is a sublist of the format: -->

結果は、設定可能な接続オプションとその現在のデフォルト値を示すリストです。リスト内の各エントリは、次の形式の副リストになっています。

</para>
<synopsis>
{optname label dispchar dispsize value}
</synopsis>
<para>
<!-- 
where the optname is usable as an option in
<FUNCTION>pg_connect -conninfo</FUNCTION>. -->

ここで、optnameは<FUNCTION>pg_connect -conninfo</FUNCTION>内のオプションとしても使用できます。

</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>
</REFSYNOPSISDIV>

<REFSECT1 ID="R1-PGTCL-PGCONNDEFAULTS-1">
<REFSECT1INFO>
<DATE>1998-10-07</DATE>
</REFSECT1INFO>
<TITLE><!-- Description -->説明
</TITLE>

<para>
<!-- 
<FUNCTION>pg_conndefaults</FUNCTION> returns info about the connection
options available in <FUNCTION>pg_connect -conninfo</FUNCTION> and the
current default value for each option. -->

<FUNCTION>pg_conndefaults</FUNCTION>は、<FUNCTION>pg_connect -conninfo</FUNCTION>で使うことができる接続オプションについての情報とそれぞれのオプションの現在のデフォルト値を返します。
</para>
</REFSECT1>
<REFSECT1 ID="R1-PGTCL-PGCONNDEFAULTS-2">
<TITLE><!-- Usage -->使用方法
</TITLE>
<para>pg_conndefaults
</para>
</REFSECT1>
</REFENTRY>

<REFENTRY ID="PGTCL-PGEXEC">
<REFMETA>
<REFENTRYTITLE>pg_exec</REFENTRYTITLE>
<REFMISCINFO>PGTCL - Query Processing</REFMISCINFO>
</REFMETA>
<REFNAMEDIV>
<REFNAME>pg_exec
</REFNAME>
<REFPURPOSE>
<!-- send a query string to the backend -->
バックエンドに問い合わせ文字列を送ります。<indexterm><primary>pg_exec()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_exec()</secondary></indexterm><indexterm><primary>PostgreSQL</primary><secondary sortas="といあわせもじれつのそうしん">問い合わせ文字列の送信</secondary></indexterm>
</REFPURPOSE>
<!--<INDEXTERM ID="IX-PGTCL-PGEXEC-1"><PRIMARY>pgtcl</PRIMARY><SECONDARY>connecting</SECONDARY></INDEXTERM>-->
<!--<INDEXTERM ID="IX-PGTCL-PGEXEC-2"><PRIMARY>pg_connect</PRIMARY></INDEXTERM>-->
</REFNAMEDIV>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1997-12-24</DATE>
</REFSYNOPSISDIVINFO>
<synopsis>
pg_exec <REPLACEABLE CLASS="PARAMETER">dbHandle</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">queryString</REPLACEABLE>
</SYNOPSIS>

<!-- ********************************************************** -->

<REFSECT2 ID="R2-PGTCL-PGEXEC-1">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Inputs -->入力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">dbHandle</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies a valid database handle. -->
有効なデータベースハンドルを指定します。
</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">queryString</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies a valid SQL query. -->
有効なSQL問い合わせを指定します。
</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>

<REFSECT2 ID="R2-PGTCL-PGEXEC-2">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Outputs -->出力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">resultHandle</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- 
A Tcl error will be returned if Pgtcl was unable to obtain a backend
response.  Otherwise, a query result object is created and a handle for
it is returned.  This handle can be passed to <FUNCTION>pg_result</FUNCTION>
to obtain the results of the query. -->

Pgtclがバックエンドからの応答を得ることができなかった場合、Tclエラーが返されます。そうでない場合は、問い合わせ結果のオブジェクトが作られ、そのハンドルが返されます。このハンドルは問い合わせの結果を得るために<FUNCTION>pg_result</FUNCTION>に渡されることができます。
</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2></REFSYNOPSISDIV>

<REFSECT1 ID="R1-PGTCL-PGEXEC-1">
<REFSECT1INFO>
<DATE>1997-12-24</DATE>
</REFSECT1INFO>
<TITLE><!-- Description -->説明
</TITLE>
<para>
<!-- <FUNCTION>pg_exec</FUNCTION> submits a query to the 
<ProductName>Postgres</ProductName> backend and returns a result. 

Query result handles start with the connection handle and add a period
and a result number.-->


<FUNCTION>pg_exec</FUNCTION>は、<ProductName>Postgres</ProductName>バックエンドに問い合わせを送り、その結果を返します。問い合わせ結果のハンドル名は、接続ハンドル名から始まり、続いて、ピリオド、そして結果番号が付いたものになります。

</para>

<para>
<!-- 
Note that lack of a Tcl error is not proof that the query succeeded!
An error message returned by the backend will be processed
as a query result with failure status, not by generating a Tcl error
in pg_exec. -->

Tclエラーがないといっても問い合わせが成功したとは限りません！ バックエンドから返されるエラーメッセージは、どんな失敗であったかのステータスを持った問い合わせ結果として処理されるものであり、pg_exec内でのTclエラーによって生成されるものではありません。

</para>
</REFSECT1>
</refentry>

<REFENTRY ID="PGTCL-PGRESULT">
<REFMETA>
<REFENTRYTITLE>pg_result</REFENTRYTITLE>
<REFMISCINFO>PGTCL - Query Processing</REFMISCINFO>
</REFMETA>
<REFNAMEDIV>
<REFNAME>pg_result
</REFNAME>
<REFPURPOSE>
<!--get information about a query result -->
問い合わせ結果についての情報を得ます。<indexterm><primary>pg_result()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_result()</secondary></indexterm><indexterm><primary>PostgreSQL</primary><secondary sortas="といあわせけっかのしゅとく">問い合わせ結果の取得</secondary></indexterm>
</REFPURPOSE>
<!--<INDEXTERM ID="IX-PGTCL-PGRESULT-1"><PRIMARY>pgtcl</PRIMARY><SECONDARY>connecting</SECONDARY></INDEXTERM>-->
<!--<INDEXTERM ID="IX-PGTCL-PGRESULT-2"><PRIMARY>pg_connect</PRIMARY></INDEXTERM>-->
</REFNAMEDIV>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1997-12-24</DATE>
</REFSYNOPSISDIVINFO>
<synopsis>
pg_result <REPLACEABLE CLASS="PARAMETER">resultHandle</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">resultOption</REPLACEABLE>
</SYNOPSIS>
<REFSECT2 ID="R2-PGTCL-PGRESULT-1">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Inputs -->入力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">resultHandle</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
  <!-- The handle for a query result. -->
  問い合わせ結果のハンドル。
</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">resultOption</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- Specifies one of several possible options. -->
設定可能なオプションの内の1つを指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>

<REFSECT3>
<!-- <TITLE>Options</TITLE> -->
<TITLE>オプション</TITLE>

<VARIABLELIST>
<VARLISTENTRY>
<TERM>
-status
</TERM>
<LISTITEM>
<para>
<!-- the status of the result. -->
結果のステータス

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
-error
</TERM>
<LISTITEM>
<para>
<!-- the error message, if the status indicates error; otherwise an empty 
string. -->
ステータスがエラーを示していた場合はエラーメッセージ、さもなくば空文字列。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
-conn
</TERM>
<LISTITEM>
<para>
<!-- the connection that produced the result. -->
結果を作成した接続。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
-oid
</TERM>
<LISTITEM>
<para>
<!-- if the command was an INSERT, the OID of the 
inserted tuple; otherwise an empty string. -->
INSERTコマンドの場合、挿入されたタプルのOID、さもなくば空文字列。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
-numTuples
</TERM>
<LISTITEM>
<para>
<!-- the number of tuples returned by the query. -->
問い合わせによって返されたタプル数。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
-numAttrs
</TERM>
<LISTITEM>
<para>
<!-- the number of attributes in each tuple. -->
各タプルの属性数。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
-list VarName
</TERM>
<LISTITEM>
<para>
<!-- assign the results to a list of lists. -->
リストのリストへ結果を割り当てます。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
-assign arrayName
</TERM>
<LISTITEM>
<para>
<!-- assign the results to an array, using subscripts of the form
(tupno,attributeName). -->

(tupno,attributeName)という形式にインデックスされた配列に結果
を割り当てます。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
-assignbyidx arrayName ?appendstr?
</TERM>
<LISTITEM>
<para>
<!-- 
assign the results to an array using the first attribute's value and
the remaining attributes' names as keys.  If appendstr is given then
it is appended to each key.  In short, all but the first field of each
tuple are stored into the array, using subscripts of the form
(firstFieldValue,fieldNameAppendStr). -->

最初の属性値と残る属性名をキーとして使った配列に結果を割り当てます。appendstrがある場合、各キーにそれを追加します。簡単にいうと、各タプルの最初のフィールドを除くすべてが、(firstFieldValue,fieldNameAppendStr)という形式にインデックスされた配列の中に格納されます。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
-getTuple tupleNumber
</TERM>
<LISTITEM>
<para>
<!-- returns the fields of the indicated tuple in a list.  Tuple numbers
start at zero. -->
リストから指定タプルのフィールドを返します。タプル番号は0から始まります。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
-tupleArray tupleNumber arrayName
</TERM>
<LISTITEM>
<para>
<!-- 
stores the fields of the tuple in array arrayName, indexed by field names.
Tuple numbers start at zero. -->

指定されたタプルのフィールドを、フィールド名でインデックスされた配列arrayNameに保存します。タプル番号は0から始まります。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
-attributes
</TERM>
<LISTITEM>
<para>
<!-- returns a list of the names of the tuple attributes. -->
タプル属性の名前のリストを返します。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
-lAttributes
</TERM>
<LISTITEM>
<para>
<!-- returns a list of sublists, {name ftype fsize} for each tuple attribute.
-->
各タプルの属性について{name ftype fsize}という副リストを持つリストを返します。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
-clear 
</TERM>
<LISTITEM>
<para>
<!-- clear the result query object. -->
問い合わせ結果オブジェクトをクリアします。

</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT3>
</REFSECT2>

<REFSECT2 ID="R2-PGTCL-PGRESULT-2">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Outputs -->出力
</TITLE>
<para>
<!-- The result depends on the selected option, as described above. -->
結果は、上述のとおり、選択したオプションに依存します。

</para>
</REFSECT2></REFSYNOPSISDIV>

<REFSECT1 ID="R1-PGTCL-PGRESULT-1">
<REFSECT1INFO>
<DATE>1997-12-24</DATE>
</REFSECT1INFO>
<TITLE><!-- Description -->説明
</TITLE>
<para>
<!-- 
<FUNCTION>pg_result</FUNCTION> returns information about a query result
created by a prior <FUNCTION>pg_exec</FUNCTION>. -->

<FUNCTION>pg_result</FUNCTION>は、事前に行われた<FUNCTION>pg_exec</FUNCTION>によって作成された問い合わせ結果についての情報を返します。

</para>

<para>
<!-- 
You can keep a query result around for as long as you need it, but when
you are done with it, be sure to free it by
executing <FUNCTION>pg_result -clear</FUNCTION>.  Otherwise, you have
a memory leak, and Pgtcl will eventually start complaining that you've
created too many query result objects. -->

必要な期間、問い合わせ結果を保持できます。ただし必要がなくなったら、確実に<FUNCTION>pg_result -clear</FUNCTION>を実行して結果を解放してください。さもないと、メモリリークが起こり、Pgtclが突然、あまりにも多くの問い合わせ結果オブジェクトを作成したといった警報を出すことがあります。


</para>
</REFSECT1>
</REFENTRY>

<!-- ********************************************************** -->

<REFENTRY ID="PGTCL-PGSELECT">
<REFMETA>
<REFENTRYTITLE>pg_select</REFENTRYTITLE>
<REFMISCINFO>PGTCL - Query Processing</REFMISCINFO>
</REFMETA>
<REFNAMEDIV>
<REFNAME>pg_select
</REFNAME>
<REFPURPOSE>
<!-- loop over the result of a SELECT statement -->
SELECT文の結果を繰り返し処理します。<indexterm><primary>pg_select()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_select()</secondary></indexterm><indexterm><primary>PostgreSQL</primary><secondary sortas="SELECTぶんをくりかえししょり">SELECt文を繰り返し処理</secondary></indexterm>

</REFPURPOSE>
<!--<INDEXTERM ID="IX-PGTCL-PGSELECT-1"><PRIMARY>pgtcl</PRIMARY><SECONDARY>connecting</SECONDARY></INDEXTERM>-->
<!--<INDEXTERM ID="IX-PGTCL-PGSELECT-2"><PRIMARY>pg_connect</PRIMARY></INDEXTERM>-->
</REFNAMEDIV>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1997-12-24</DATE>
</REFSYNOPSISDIVINFO>
<synopsis>
pg_select <REPLACEABLE CLASS="PARAMETER">dbHandle</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">queryString</REPLACEABLE>
  <REPLACEABLE CLASS="PARAMETER">arrayVar</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">queryProcedure</REPLACEABLE>
</SYNOPSIS>

<REFSECT2 ID="R2-PGTCL-PGSELECT-1">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Inputs -->入力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">dbHandle</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies a valid database handle. -->
有効なデータベースハンドルを指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">queryString</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies a valid SQL select query. -->
有効なSQL select問い合わせを指定します。
</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">arrayVar</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Array variable for tuples returned. -->
返されるタプル用の配列変数。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">queryProcedure</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Procedure run on each tuple found. -->
タプルが見つかるたびに実行されるプロシージャ。
</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>

</REFSECT2>

<REFSECT2 ID="R2-PGTCL-PGSELECT-2">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Outputs -->出力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">resultHandle</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
   <!-- the return result is either an error message or a handle for a 
query result. -->
   戻される結果は、エラーメッセージまたは問い合わせ結果のハンドルのいずれかです。


</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2></REFSYNOPSISDIV>

<REFSECT1 ID="R1-PGTCL-PGSELECT-1">
<REFSECT1INFO>
<DATE>1997-12-24</DATE>
</REFSECT1INFO>
<TITLE><!-- Description -->説明
</TITLE>
<para>
<!-- <FUNCTION>pg_select</FUNCTION> submits a SELECT query to the
<ProductName>Postgres</ProductName> backend, and executes a
given chunk of code for each tuple in the result.
  The <REPLACEABLE CLASS="PARAMETER">queryString</REPLACEABLE>
  must be a SELECT statement.  Anything else returns an error.
  The <REPLACEABLE CLASS="PARAMETER">arrayVar</REPLACEABLE>
  variable is an array name used in the loop.  For each tuple,
  <REPLACEABLE CLASS="PARAMETER">arrayVar</REPLACEABLE> is filled in
  with the tuple field values, using the field names as the array
  indexes.  Then the
  <REPLACEABLE CLASS="PARAMETER">queryProcedure</REPLACEABLE>
  is executed. -->

<FUNCTION>pg_select</FUNCTION>は、SELECT問い合わせを<ProductName>Postgres</ProductName>バックエンドに送り、その結果内の各タプルについて指定されたコード群を実行します。<REPLACEABLE CLASS="PARAMETER">queryString</REPLACEABLE>はSELECT文でなければいけません。他の問い合わせはエラーを返します。変数<REPLACEABLE CLASS="PARAMETER">arrayVar</REPLACEABLE>は、ループ内で使用される配列名です。各タプルについて<REPLACEABLE CLASS="PARAMETER">arrayVar</REPLACEABLE>にはそのタプルのフィールド値がフィールド名でインデックスされた形で格納されます。そして、<REPLACEABLE CLASS="PARAMETER">queryProcedure</REPLACEABLE>が実行されます。


</para>
</REFSECT1>

<REFSECT1 ID="R1-PGTCL-PGSELECT-2">
<TITLE><!-- Usage -->使用方法
</TITLE>
<para>
<!-- 
This would work if table "table" has fields "control" and "name"
(and, perhaps, other fields): -->

下は「table」テーブルが「control」と「name」という名前のフィールド（と、その他のフィールド）を持つ場合にうまく実行できます。
</para>

<programlisting>
	pg_select $pgconn "SELECT * from table" array {
		puts [format "%5d %s" array(control) array(name)]
	}
</programlisting>
</REFSECT1>

</REFENTRY>

<!-- ********************************************************** -->

<REFENTRY ID="PGTCL-PGLISTEN">
<REFMETA>
<REFENTRYTITLE>pg_listen</REFENTRYTITLE>
<REFMISCINFO>PGTCL - Asynchronous Notify</REFMISCINFO>
</REFMETA>
<REFNAMEDIV>
<REFNAME>pg_listen
</REFNAME>
<REFPURPOSE><!-- sets or changes a callback for asynchronous NOTIFY messages
-->
非同期通知メッセージ用のコールバックを設定または変更します。<indexterm><primary>pg_listen()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_listen()</secondary></indexterm><indexterm><primary>PostgreSQL</primary><secondary sortas="ひどうきつうちめっせーじのせってい">非同期通知メッセージの設定</secondary></indexterm><indexterm><primary sortas="ひどうきつうち">非同期通知</primary></indexterm><indexterm><primary sortas="つうち">通知</primary></indexterm>
</REFPURPOSE>
<!--<INDEXTERM ID="IX-PGTCL-PGLISTEN-1"><PRIMARY>pgtcl</PRIMARY><SECONDARY>notify</SECONDARY></INDEXTERM>-->
<!--<INDEXTERM ID="IX-PGTCL-PGLISTEN-2"><PRIMARY>notify</PRIMARY></INDEXTERM>-->
</REFNAMEDIV>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1998-5-22</DATE>
</REFSYNOPSISDIVINFO>
<synopsis>
pg_listen <REPLACEABLE CLASS="PARAMETER">dbHandle</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">notifyName</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">callbackCommand</REPLACEABLE>
</SYNOPSIS>

<REFSECT2 ID="R2-PGTCL-PGLISTEN-1">
<REFSECT2INFO>
<DATE>1998-5-22</DATE>
</REFSECT2INFO>
<TITLE><!-- Inputs -->入力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">dbHandle</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies a valid database handle. -->
有効なデータベースハンドルを指定します。
</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">notifyName</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies the notify condition name to start or stop listening to.-->
 通知監視状態を開始するまたは停止する通知条件名を指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">callbackCommand</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- If present and not empty, provides the command string to execute
when a matching notification arrives. -->
存在し、空でない場合、条件にあった通知メッセージが届いたときに実行するコマンド文字列を提供します。


</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>

<REFSECT2 ID="R2-PGTCL-PGLISTEN-2">
<REFSECT2INFO>
<DATE>1998-5-22</DATE>
</REFSECT2INFO>
<TITLE><!-- Outputs -->出力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <!-- None -->なし
</TERM>
<LISTITEM>
<para>
</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>
</REFSYNOPSISDIV>

<REFSECT1 ID="R1-PGTCL-PGLISTEN-1">
<REFSECT1INFO>
<DATE>1998-5-22</DATE>
</REFSECT1INFO>
<TITLE><!-- Description -->説明
</TITLE>

<para>
<!-- 
<FUNCTION>pg_listen</FUNCTION> creates, changes, or cancels a request
to listen for asynchronous NOTIFY messages from the
<ProductName>Postgres</ProductName> backend.  With a callbackCommand
parameter, the request is established, or the command string of an already
existing request is replaced.  With no callbackCommand parameter, a prior
request is canceled. -->

<FUNCTION>pg_listen</FUNCTION>は、<ProductName>Postgres</ProductName>バックエンドからの非同期NOTIFYメッセージの監視要求の生成、変更、取り消しを行います。パラメータcallbackCommandを使って、要求を確立したり、既存のリクエストのコマンド文字列を置換したりします。パラメータcallbackCommandがない場合は、事前になされた要求が取り消されます。

</para>

<para>
<!-- After a <FUNCTION>pg_listen</FUNCTION> request is established,
the specified command string is executed whenever a NOTIFY message bearing
the given name arrives from the backend.  This occurs when any
<ProductName>Postgres</ProductName> client application issues a NOTIFY command
referencing that name.  (Note that the name can be, but does not have to be,
that of an existing relation in the database.)
The command string is executed from the Tcl idle loop.  That is the normal
idle state of an application written with Tk.  In non-Tk Tcl shells, you can
execute <FUNCTION>update</FUNCTION> or <FUNCTION>vwait</FUNCTION> to cause
the idle loop to be entered. -->

<FUNCTION>pg_listen</FUNCTION>の要求が確立した後、バックエンドから指定した名前を持ったNOTIFYメッセージが届くたびに、指定されたコマンド文字列が実行されます。この手順は、任意の<ProductName>Postgres</ProductName>クライアントアプリケーションがその名前を参照するNOTIFYコマンドを発行するたびに発生します（その名前はデータベース内の既存のリレーションのものである必要がないことに注意してください）。コマンド文字列は、Tclの待ちループから実行されます。それは、Tkで記述されたアプリケーションの通常の待ち状態です。非TkのTclシェルの場合は、<FUNCTION>update</FUNCTION>または<FUNCTION>vwait</FUNCTION>を実行して、待ちループ状態にすることができます。

</para>

<para>
<!-- 
You should not invoke the SQL statements LISTEN or UNLISTEN directly when
using <FUNCTION>pg_listen</FUNCTION>.  Pgtcl takes care of issuing those
statements for you.  But if you want to send a NOTIFY message yourself,
invoke the SQL NOTIFY statement using <FUNCTION>pg_exec</FUNCTION>. -->

<FUNCTION>pg_listen</FUNCTION>を使用している場合は、直接LISTENもしくはUNLISTENというSQL文を呼び出さないでください。Pgtclはこれらの文の発行を管理しています。しかし、自分でNOTIFYメッセージを送信したい場合は<FUNCTION>pg_exec</FUNCTION>を使ってSQL NOTIFY文を呼び出してください。


</para>
</REFSECT1>

</REFENTRY>

<!-- ********************************************************** -->

<REFENTRY ID="PGTCL-PGLOCREAT">
<REFMETA>
<REFENTRYTITLE>pg_lo_creat</REFENTRYTITLE>
<!-- <REFMISCINFO>PGTCL - Large Objects</REFMISCINFO>-->
<REFMISCINFO>PGTCL――ラージオブジェクト</REFMISCINFO>
</REFMETA>
<REFNAMEDIV>
<REFNAME>pg_lo_creat
</REFNAME>
<REFPURPOSE><!-- create a large object -->
ラージオブジェクトを作成します。<indexterm><primary>pg_lo_creat()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_creat()</secondary></indexterm><indexterm><primary sortas="らーじおぶじぇくと">ラージオブジェクト</primary><secondary sortas="さくせい">作成</secondary></indexterm>
</REFPURPOSE>
<!--<INDEXTERM ID="IX-PGTCL-PGLOCREAT-1"><PRIMARY>pgtcl</PRIMARY><SECONDARY>creating</SECONDARY></INDEXTERM>-->
<!--<INDEXTERM ID="IX-PGTCL-PGLOCREAT-2"><PRIMARY>pg_lo_creat</PRIMARY></INDEXTERM>-->
</REFNAMEDIV>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1997-12-24</DATE>
</REFSYNOPSISDIVINFO>
<synopsis>
pg_lo_creat <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">mode</REPLACEABLE>
</SYNOPSIS>

<REFSECT2 ID="R2-PGTCL-PGLOCREAT-1">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Inputs -->入力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies a valid database connection. -->
有効なデータベース接続を指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">mode</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- Specifies the access mode for the large object -->
ラージオブジェクトへのアクセスモードを指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>

<REFSECT2 ID="R2-PGTCL-PGLOCREAT-2">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Outputs -->出力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">objOid</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- The oid of the large object created. -->
作成されたラージオブジェクトのoid。

</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>
</REFSYNOPSISDIV>

<REFSECT1 ID="R1-PGTCL-PGLOCREAT-1">
<REFSECT1INFO>
<DATE>1997-12-24</DATE>
</REFSECT1INFO>
<TITLE><!-- Description -->説明
</TITLE>
<para>
<!-- <FUNCTION>pg_lo_creat</FUNCTION> creates an Inversion Large Object.-->
<FUNCTION>pg_lo_creat</FUNCTION>は、転置ラージオブジェクトを作成します。

</para>
</REFSECT1>
<REFSECT1 ID="R1-PGTCL-PGLOCREAT-2">
<TITLE><!-- Usage -->使用方法
</TITLE>
<para>
<!-- 
mode can be any OR'ing together of INV_READ and INV_WRITE. 
The OR delimiter character is "|". -->
modeは、INV_READ、INV_WRITEの論理和で指定できます。論理和の区切りは「|」です。
</para>

<programlisting>
[pg_lo_creat $conn "INV_READ|INV_WRITE"]
</programlisting>
</REFSECT1>
</REFENTRY>

<!-- ********************************************************** -->

<REFENTRY ID="PGTCL-PGLOOPEN">
<REFMETA>
<REFENTRYTITLE>pg_lo_open</REFENTRYTITLE>
<!-- <REFMISCINFO>PGTCL - Large Objects</REFMISCINFO>-->
<REFMISCINFO>PGTCL――ラージオブジェクト</REFMISCINFO>
</REFMETA>
<REFNAMEDIV>
<REFNAME>pg_lo_open
</REFNAME>
<REFPURPOSE><!-- open a large object -->
ラージオブジェクトを開きます。<indexterm><primary>pg_lo_open()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_open()</secondary></indexterm><indexterm><primary sortas="らーじおぶじぇくと">ラージオブジェクト</primary><secondary sortas="おーぷん">オープン</secondary></indexterm>
</REFPURPOSE>
<!--<INDEXTERM ID="IX-PGTCL-PGLOOPEN-1"><PRIMARY>pgtcl</PRIMARY><SECONDARY>opening</SECONDARY></INDEXTERM>-->
<!--<INDEXTERM ID="IX-PGTCL-PGLOOPEN-2"><PRIMARY>pg_lo_open</PRIMARY></INDEXTERM>-->
</REFNAMEDIV>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1997-12-24</DATE>
</REFSYNOPSISDIVINFO>
<synopsis>
pg_lo_open <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">objOid</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">mode</REPLACEABLE>
</SYNOPSIS>

<REFSECT2 ID="R2-PGTCL-PGLOOPEN-1">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Inputs -->入力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies a valid database connection. -->
有効なデータベース接続を指定します。
</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">objOid</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies a valid large object oid. -->
有効なラージオブジェクトのoidを指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">mode</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!--Specifies the access mode for the large object-->
ラージオブジェクトのアクセスモードを指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>

<REFSECT2 ID="R2-PGTCL-PGLOOPEN-2">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Outputs -->出力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">fd</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- A file descriptor for use in later pg_lo* routines. -->
後のpg_lo*処理において使用されるファイル記述子。
</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>
</REFSYNOPSISDIV>

<REFSECT1 ID="R1-PGTCL-PGLOOPEN-1">
<REFSECT1INFO>
<DATE>1997-12-24</DATE>
</REFSECT1INFO>
<TITLE><!-- Description -->
説明
</TITLE>
<para><!-- <FUNCTION>pg_lo_open</FUNCTION> open an Inversion Large Object. -->
<FUNCTION>pg_lo_open</FUNCTION>は転置ラージオブジェクトを開きます。

</para>
</REFSECT1>
<REFSECT1 ID="R1-PGTCL-PGLOOPEN-2">
<TITLE><!-- Usage -->使用方法
</TITLE>
<para>
<!-- Mode can be either "r", "w", or "rw". -->
引数modeには、"r"、"w"、"rw"のいずれかを指定できます。

</para>
</REFSECT1>
</REFENTRY>

<!-- ********************************************************** -->

<REFENTRY ID="PGTCL-PGLOCLOSE">
<REFMETA>
<REFENTRYTITLE>pg_lo_close</REFENTRYTITLE>
<!-- <REFMISCINFO>PGTCL - Large Objects</REFMISCINFO> -->
<REFMISCINFO>PGTCL――ラージオブジェクト</REFMISCINFO>
</REFMETA>
<REFNAMEDIV>
<REFNAME>pg_lo_close
</REFNAME>
<REFPURPOSE><!-- close a large object -->
ラージオブジェクトを閉じます。<indexterm><primary>pg_lo_close()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_close()</secondary></indexterm><indexterm><primary sortas="らーじおぶじぇくと">ラージオブジェクト</primary><secondary sortas="くろーず">クローズ</secondary></indexterm>
</REFPURPOSE>
<!--<INDEXTERM ID="IX-PGTCL-PGLOCLOSE-1"><PRIMARY>pgtcl</PRIMARY><SECONDARY>closing</SECONDARY></INDEXTERM>-->
<!--<INDEXTERM ID="IX-PGTCL-PGLOCLOSE-2"><PRIMARY>pg_lo_close</PRIMARY></INDEXTERM>-->
</REFNAMEDIV>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1997-12-24</DATE>
</REFSYNOPSISDIVINFO>
<synopsis>
pg_lo_close <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">fd</REPLACEABLE>
</SYNOPSIS>

<REFSECT2 ID="R2-PGTCL-PGLOCLOSE-1">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Inputs -->入力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies a valid database connection. -->
有効なデータベース接続を指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">fd</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- A file descriptor for use in later pg_lo* routines. -->
pg_lo_openで得られるラージオブジェクトのファイル記述子。
</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>

<REFSECT2 ID="R2-PGTCL-PGLOCLOSE-2">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Outputs -->出力
</TITLE>
<para><!-- None -->なし</para>
</REFSECT2>
</REFSYNOPSISDIV>

<REFSECT1 ID="R1-PGTCL-PGLOCLOSE-1">
<REFSECT1INFO>
<DATE>1997-12-24</DATE>
</REFSECT1INFO>
<TITLE><!-- Description -->説明
</TITLE>
<para><!-- <FUNCTION>pg_lo_close</FUNCTION> closes an Inversion Large Object.-->
<FUNCTION>pg_lo_close</FUNCTION>は転置ラージオブジェクトを閉じます。
</para>
</REFSECT1>
<REFSECT1 ID="R1-PGTCL-PGLOCLOSE-2">
<TITLE><!-- Usage -->使用方法
</TITLE>
<para>
</para>
</REFSECT1>
</REFENTRY>

<!-- ********************************************************** -->

<REFENTRY ID="PGTCL-PGLOREAD">
<REFMETA>
<REFENTRYTITLE>pg_lo_read</REFENTRYTITLE>
<!-- <REFMISCINFO>PGTCL - Large Objects</REFMISCINFO> -->
<REFMISCINFO>PGTCL――ラージオブジェクト</REFMISCINFO>
</REFMETA>
<REFNAMEDIV>
<REFNAME>pg_lo_read
</REFNAME>
<REFPURPOSE><!-- read a large object -->
ラージオブジェクトを読み込みます。<indexterm><primary>pg_lo_read()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_read()</secondary></indexterm><indexterm><primary sortas="らーじおぶじぇくと">ラージオブジェクト</primary><secondary sortas="よみこみ">読み込み</secondary></indexterm>
</REFPURPOSE>
<!--<INDEXTERM ID="IX-PGTCL-PGLOREAD-1"><PRIMARY>pgtcl</PRIMARY><SECONDARY>reading</SECONDARY></INDEXTERM>-->
<!--<INDEXTERM ID="IX-PGTCL-PGLOREAD-2"><PRIMARY>pg_lo_read</PRIMARY></INDEXTERM>-->
</REFNAMEDIV>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1997-12-24</DATE>
</REFSYNOPSISDIVINFO>
<synopsis>
pg_lo_read <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">fd</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">bufVar</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">len</REPLACEABLE>
</SYNOPSIS>

<REFSECT2 ID="R2-PGTCL-PGLOREAD-1">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Inputs -->入力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies a valid database connection. -->
有効なデータベース接続を指定します。
</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">fd</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- File descriptor for the large object from pg_lo_open. -->
pg_lo_openで得られるラージオブジェクトのファイル記述子。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">bufVar</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- Specifies a valid buffer variable to contain the large object segment.-->
ラージオブジェクトの一部を格納するためのバッファ用の有効な変数を指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">len</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- Specifies the maximum allowable size of the large object segment. -->
取得するラージオブジェクトの一部分の最大許容サイズを指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>

<REFSECT2 ID="R2-PGTCL-PGLOREAD-2">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Outputs -->出力
</TITLE>
<para><!-- None -->なし</para>
</REFSECT2>
</REFSYNOPSISDIV>

<REFSECT1 ID="R1-PGTCL-PGLOREAD-1">
<REFSECT1INFO>
<DATE>1997-12-24</DATE>
</REFSECT1INFO>
<TITLE><!-- Description -->説明
</TITLE>
<para>
<!-- <FUNCTION>pg_lo_read</FUNCTION> reads at most 
<REPLACEABLE CLASS="PARAMETER">len</REPLACEABLE> bytes from a large 
object into a variable named <REPLACEABLE CLASS="PARAMETER">bufVar</REPLACEABLE>. -->

<FUNCTION>pg_lo_read</FUNCTION>は、ラージオブジェクトから最大<REPLACEABLE CLASS="PARAMETER">len</REPLACEABLE>バイトを読み込み、<REPLACEABLE CLASS="PARAMETER">bufVar</REPLACEABLE>という名前の変数に保存します。

</para>
</REFSECT1>
<REFSECT1 ID="R1-PGTCL-PGLOREAD-2">
<TITLE><!-- Usage -->使用方法
</TITLE>
<para>
<!-- 
<REPLACEABLE CLASS="PARAMETER">bufVar</REPLACEABLE> must be a valid variable 
name. -->

<REPLACEABLE CLASS="PARAMETER">bufVar</REPLACEABLE>は有効な変数の名前である必要があります。

</para>
</REFSECT1>
</REFENTRY>

<!-- ********************************************************** -->

<REFENTRY ID="PGTCL-PGLOWRITE">
<REFMETA>
<REFENTRYTITLE>pg_lo_write</REFENTRYTITLE>
<!-- <REFMISCINFO>PGTCL - Large Objects</REFMISCINFO> -->
<REFMISCINFO>PGTCL――ラージオブジェクト</REFMISCINFO>
</REFMETA>
<REFNAMEDIV>
<REFNAME>pg_lo_write
</REFNAME>
<REFPURPOSE><!-- write a large object -->
ラージオブジェクトに書き込みます。<indexterm><primary>pg_lo_write()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_write()</secondary></indexterm><indexterm><primary sortas="らーじおぶじぇくと">ラージオブジェクト</primary><secondary sortas="かきこみ">書き込み</secondary></indexterm>

</REFPURPOSE>
<!--<INDEXTERM ID="IX-PGTCL-PGLOWRITE-1"><PRIMARY>pgtcl</PRIMARY><SECONDARY>writing</SECONDARY></INDEXTERM>-->
<!--<INDEXTERM ID="IX-PGTCL-PGLOWRITE-2"><PRIMARY>pg_lo_write</PRIMARY></INDEXTERM>-->
</REFNAMEDIV>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1997-12-24</DATE>
</REFSYNOPSISDIVINFO>
<synopsis>
pg_lo_write <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">fd</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">buf</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">len</REPLACEABLE>
</SYNOPSIS>

<REFSECT2 ID="R2-PGTCL-PGLOWRITE-1">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Inputs -->入力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies a valid database connection. -->
有効なデータベース接続を指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">fd</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- File descriptor for the large object from pg_lo_open. -->
pg_lo_openで得られるラージオブジェクトのファイル記述子。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">buf</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- Specifies a valid string variable to write to the large object. -->
ラージオブジェクトに書き込む有効な文字列変数を指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">len</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- Specifies the maximum size of the string to write. -->
書き込む文字列の最大サイズを指定します。
</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>

<REFSECT2 ID="R2-PGTCL-PGLOWRITE-2">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Outputs -->出力
</TITLE>
<para><!-- None -->なし</para>
</REFSECT2>
</REFSYNOPSISDIV>

<REFSECT1 ID="R1-PGTCL-PGLOWRITE-1">
<REFSECT1INFO>
<DATE>1997-12-24</DATE>
</REFSECT1INFO>
<TITLE><!-- Description -->説明
</TITLE>
<para>
<!-- <FUNCTION>pg_lo_write</FUNCTION> writes 
at most <REPLACEABLE CLASS="PARAMETER">len</REPLACEABLE> bytes to a 
large object from a variable
<REPLACEABLE CLASS="PARAMETER">buf</REPLACEABLE>. -->

<FUNCTION>pg_lo_write</FUNCTION>は最大<REPLACEABLE CLASS="PARAMETER">len</REPLACEABLE>バイト分、<REPLACEABLE CLASS="PARAMETER">buf</REPLACEABLE>変数からラージオブジェクトに書き込みます。


</para>
</REFSECT1>
<REFSECT1 ID="R1-PGTCL-PGLOWRITE-2">
<TITLE><!-- Usage -->使用方法
</TITLE>
<para>
<!-- 
<REPLACEABLE CLASS="PARAMETER">buf</REPLACEABLE> must be 
the actual string to write, not a variable name. -->

<REPLACEABLE CLASS="PARAMETER">buf</REPLACEABLE>は変数名ではなく、実際に書き込む文字列である必要があります。


</para>
</REFSECT1>
</REFENTRY>

<!-- ********************************************************** -->

<REFENTRY ID="PGTCL-PGLOLSEEK">
<REFMETA>
<REFENTRYTITLE>pg_lo_lseek</REFENTRYTITLE>
<!-- <REFMISCINFO>PGTCL - Large Objects</REFMISCINFO> -->
<REFMISCINFO>PGTCL――ラージオブジェクト</REFMISCINFO>
</REFMETA>
<REFNAMEDIV>
<REFNAME>pg_lo_lseek
</REFNAME>
<REFPURPOSE><!-- seek to a position in a large object -->
ラージオブジェクトの位置をシークします。<indexterm><primary>pg_lo_lseek()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_lseek()</secondary></indexterm><indexterm><primary sortas="らーじおぶじぇくと">ラージオブジェクト</primary><secondary sortas="しーく">シーク</secondary></indexterm>

</REFPURPOSE>
<!--<INDEXTERM ID="IX-PGTCL-PGLOLSEEK-1"><PRIMARY>pgtcl</PRIMARY><SECONDARY>positioning</SECONDARY></INDEXTERM>-->
<!--<INDEXTERM ID="IX-PGTCL-PGLOLSEEK-2"><PRIMARY>pg_lo_lseek</PRIMARY></INDEXTERM>-->
</REFNAMEDIV>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1997-12-24</DATE>
</REFSYNOPSISDIVINFO>
<synopsis>
pg_lo_lseek <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">fd</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">offset</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">whence</REPLACEABLE>
</SYNOPSIS>

<REFSECT2 ID="R2-PGTCL-PGLOLSEEK-1">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Inputs -->入力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies a valid database connection. -->
有効なデータベース接続を指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">fd</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- File descriptor for the large object from pg_lo_open. -->
pg_lo_openで得られるラージオブジェクトのファイル記述子。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">offset</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies a zero-based offset in bytes. -->
0から始まるオフセットをバイト単位で指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">whence</REPLACEABLE>
</TERM>
<LISTITEM>
<para> 
<!-- whence can be "SEEK_CUR", "SEEK_END", or "SEEK_SET" -->
引数whenceには"SEEK_CUR"、"SEEK_END"、"SEEK_SET"のいずれかを指定できます。

</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>

<REFSECT2 ID="R2-PGTCL-PGLOLSEEK-2">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Outputs -->出力
</TITLE>
<para><!-- None -->なし</para>
</REFSECT2>
</REFSYNOPSISDIV>

<REFSECT1 ID="R1-PGTCL-PGLOLSEEK-1">
<REFSECT1INFO>
<DATE>1997-12-24</DATE>
</REFSECT1INFO>
<TITLE><!-- Description -->説明
</TITLE>
<para>
<!-- <FUNCTION>pg_lo_lseek</FUNCTION> positions 
to <REPLACEABLE CLASS="PARAMETER">offset</REPLACEABLE> bytes from the 
beginning of the large object. -->
<FUNCTION>pg_lo_lseek</FUNCTION>はラージオブジェクトの先頭から<REPLACEABLE CLASS="PARAMETER">offset</REPLACEABLE>バイトに位置を変更します。

</para>
</REFSECT1>
<REFSECT1 ID="R1-PGTCL-PGLOLSEEK-2">
<TITLE><!-- Usage -->使用方法
</TITLE>
<para>
<!-- <REPLACEABLE CLASS="PARAMETER">whence</REPLACEABLE> 
can be "SEEK_CUR", "SEEK_END", or "SEEK_SET". -->

whenceには"SEEK_CUR"、"SEEK_END"、"SEEK_SET"のいずれかを指定できます。

</para>
</REFSECT1>
</REFENTRY>

<!-- ********************************************************** -->

<REFENTRY ID="PGTCL-PGLOTELL">
<REFMETA>
<REFENTRYTITLE>pg_lo_tell</REFENTRYTITLE>
<!-- <REFMISCINFO>PGTCL - Large Objects</REFMISCINFO> -->
<REFMISCINFO>PGTCL――ラージオブジェクト</REFMISCINFO>
</REFMETA>
<REFNAMEDIV>
<REFNAME>pg_lo_tell
</REFNAME>
<REFPURPOSE>
<!-- return the current seek position of a large object -->
現在のラージオブジェクトのシーク位置を返します。<indexterm><primary>pg_lo_tell()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_tell()</secondary></indexterm><indexterm><primary sortas="らーじおぶじぇくと">ラージオブジェクト</primary><secondary sortas="しーくいち">シーク位置</secondary></indexterm>
</REFPURPOSE>
<!--<INDEXTERM ID="IX-PGTCL-PGLOTELL-1"><PRIMARY>pgtcl</PRIMARY><SECONDARY>positioning</SECONDARY></INDEXTERM>-->
<!--<INDEXTERM ID="IX-PGTCL-PGLOTELL-2"><PRIMARY>pg_lo_tell</PRIMARY></INDEXTERM>-->
</REFNAMEDIV>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1997-12-24</DATE>
</REFSYNOPSISDIVINFO>
<synopsis>
pg_lo_tell <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">fd</REPLACEABLE>
</SYNOPSIS>

<REFSECT2 ID="R2-PGTCL-PGLOTELL-1">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Inputs -->入力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies a valid database connection. -->
有効なデータベース接続を指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">fd</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- File descriptor for the large object from pg_lo_open. -->
pg_lo_openで得られるラージオブジェクトのファイル記述子。

</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>

<REFSECT2 ID="R2-PGTCL-PGLOTELL-2">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Outputs -->出力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">offset</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- 
A zero-based offset in bytes suitable for input to 
<Function>pg_lo_lseek</Function>.-->

<Function>pg_lo_lseek</Function>への入力として使用できる、0から始まるバイト単位のオフセット。


</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>
</REFSYNOPSISDIV>

<REFSECT1 ID="R1-PGTCL-PGLOTELL-1">
<REFSECT1INFO>
<DATE>1997-12-24</DATE>
</REFSECT1INFO>
<TITLE><!-- Description -->説明
</TITLE>
<para>
<!-- <FUNCTION>pg_lo_tell</FUNCTION> returns the current
to <REPLACEABLE CLASS="PARAMETER">offset</REPLACEABLE> in bytes from
the beginning of the large object. -->

<FUNCTION>pg_lo_tell</FUNCTION>は、ラージオブジェクトの先頭から数えた、現在の<REPLACEABLE CLASS="PARAMETER">offset</REPLACEABLE>をバイト単位で返します。


</para>
</REFSECT1>
<REFSECT1 ID="R1-PGTCL-PGLOTELL-2">
<TITLE><!-- Usage -->使用方法
</TITLE>
<para>
</para>
</REFSECT1>
</REFENTRY>

<!-- ********************************************************** -->

<REFENTRY ID="PGTCL-PGLOUNLINK">
<REFMETA>
<REFENTRYTITLE>pg_lo_unlink</REFENTRYTITLE>
<!-- <REFMISCINFO>PGTCL - Large Objects</REFMISCINFO> -->
<REFMISCINFO>PGTCL――ラージオブジェクト</REFMISCINFO>
</REFMETA>
<REFNAMEDIV>
<REFNAME>pg_lo_unlink
</REFNAME>
<REFPURPOSE><!-- delete a large object -->ラージオブジェクトを削除します。<indexterm><primary>pg_lo_unlink()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_unlink()</secondary></indexterm><indexterm><primary sortas="らーじおぶじぇくと">ラージオブジェクト</primary><secondary sortas="さくじょ">削除</secondary></indexterm>
</REFPURPOSE>
<!--<INDEXTERM ID="IX-PGTCL-PGLOUNLINK-1"><PRIMARY>pgtcl</PRIMARY><SECONDARY>delete</SECONDARY></INDEXTERM>-->
<!--<INDEXTERM ID="IX-PGTCL-PGLOUNLINK-2"><PRIMARY>pg_lo_unlink</PRIMARY></INDEXTERM>-->
</REFNAMEDIV>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1997-12-24</DATE>
</REFSYNOPSISDIVINFO>
<synopsis>
pg_lo_unlink <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">lobjId</REPLACEABLE>
</SYNOPSIS>

<REFSECT2 ID="R2-PGTCL-PGLOUNLINK-1">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Inputs -->入力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies a valid database connection. -->
有効なデータベース接続を指定します。
</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">lobjId</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- Identifier for a large object.
XXX Is this the same as objOid in other calls?? - thomas 1998-01-11 -->
ラージオブジェクトの識別子。<!--XXXこれは他の呼び出しにおけるobjOidと
同じものかな?? - thomas 1998-01-11-->


</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>

<REFSECT2 ID="R2-PGTCL-PGLOUNLINK-2">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Outputs -->出力
</TITLE>
<para>
<!-- None -->なし
</para>
</REFSECT2>
</REFSYNOPSISDIV>

<REFSECT1 ID="R1-PGTCL-PGLOUNLINK-1">
<REFSECT1INFO>
<DATE>1997-12-24</DATE>
</REFSECT1INFO>
<TITLE><!-- Description -->説明
</TITLE>
<para>
<!-- <FUNCTION>pg_lo_unlink</FUNCTION> deletes the specified large object.
-->
<FUNCTION>pg_lo_unlink</FUNCTION>は指定されたラージオブジェクトを削除します。

</para>
</REFSECT1>
<!--
<REFSECT1 ID="R1-PGTCL-PGLOUNLINK-2">
<TITLE>--><!-- Usage --><!--使用方法
</TITLE>
<para>
</para>
</REFSECT1>
-->
</REFENTRY>

<!-- ********************************************************** -->

<REFENTRY ID="PGTCL-PGLOIMPORT">
<REFMETA>
<REFENTRYTITLE>pg_lo_import</REFENTRYTITLE>
<!-- <REFMISCINFO>PGTCL - Large Objects</REFMISCINFO> -->
<REFMISCINFO>PGTCL――ラージオブジェクト</REFMISCINFO>
</REFMETA>
<REFNAMEDIV>
<REFNAME>pg_lo_import
</REFNAME>
<REFPURPOSE><!-- import a large object from a Unix file -->
Unixファイルからラージオブジェクトをインポートします。<indexterm><primary>pg_lo_import()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_import()</secondary></indexterm><indexterm><primary sortas="らーじおぶじぇくと">ラージオブジェクト</primary><secondary sortas="いんぽーと">インポート</secondary></indexterm>

</REFPURPOSE>
<!--<INDEXTERM ID="IX-PGTCL-PGLOIMPORT-1"><PRIMARY>pgtcl</PRIMARY><SECONDARY>import</SECONDARY></INDEXTERM>-->
<!--<INDEXTERM ID="IX-PGTCL-PGLOIMPORT-2"><PRIMARY>pg_lo_import</PRIMARY></INDEXTERM>-->
</REFNAMEDIV>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1997-12-24</DATE>
</REFSYNOPSISDIVINFO>
<synopsis>
pg_lo_import <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">filename</REPLACEABLE>
</SYNOPSIS>

<REFSECT2 ID="R2-PGTCL-PGLOIMPORT-1">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Inputs -->入力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies a valid database connection. -->
有効なデータベース接続を指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">filename</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- Unix file name. -->Unixファイル名。
</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>

<REFSECT2 ID="R2-PGTCL-PGLOIMPORT-2">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Outputs -->出力
</TITLE>
<para>
<!-- None
XXX Does this return a lobjId? Is that the same as the objOid in other calls? thomas - 1998-01-11 -->

なし。<!--XXX これは lobjId を返すのではないかな? XXX 他の呼び出しでいう 
objOid と同じものかな? thomas - 1998-01-11-->

</para>
</REFSECT2>
</REFSYNOPSISDIV>

<REFSECT1 ID="R1-PGTCL-PGLOIMPORT-1">
<REFSECT1INFO>
<DATE>1997-12-24</DATE>
</REFSECT1INFO>
<TITLE><!-- Description -->説明
</TITLE>
<para>
<!-- <FUNCTION>pg_lo_import</FUNCTION> reads the specified file and places 
the contents into a large object. -->

<FUNCTION>pg_lo_import</FUNCTION>は、指定されたファイルを読み込み、その内容をラージオブジェクト内に格納します。

</para>
</REFSECT1>
<REFSECT1 ID="R1-PGTCL-PGLOIMPORT-2">
<TITLE><!-- Usage -->使用方法
</TITLE>
<para>
  <!-- <Function>pg_lo_import</Function> must be called within a BEGIN/END 
transaction block. -->
  <Function>pg_lo_import</Function>は、BEGIN/ENDトランザクションブロック内で呼び出す必要があります。


</para>
</REFSECT1>
</REFENTRY>

<!-- ********************************************************** -->

<REFENTRY ID="PGTCL-PGLOEXPORT">
<REFMETA>
<REFENTRYTITLE>pg_lo_export</REFENTRYTITLE>
<!-- <REFMISCINFO>PGTCL - Large Objects</REFMISCINFO> -->
<REFMISCINFO>PGTCL――ラージオブジェクト</REFMISCINFO>
</REFMETA>
<REFNAMEDIV>
<REFNAME>pg_lo_export
</REFNAME>
<REFPURPOSE><!-- export a large object to a Unix file -->
ラージオブジェクトをUnixファイルにエクスポートします。<indexterm><primary>pg_lo_export()</primary></indexterm><indexterm><primary sortas="かんすう">関数</primary><secondary>pg_lo_export()</secondary></indexterm><indexterm><primary sortas="らーじおぶじぇくと">ラージオブジェクト</primary><secondary sortas="えくすぽーと">エクスポート</secondary></indexterm>
</REFPURPOSE>
<!--<INDEXTERM ID="IX-PGTCL-PGLOEXPORT-1"><PRIMARY>pgtcl</PRIMARY><SECONDARY>export</SECONDARY></INDEXTERM>-->
<!--<INDEXTERM ID="IX-PGTCL-PGLOEXPORT-2"><PRIMARY>pg_lo_export</PRIMARY></INDEXTERM>-->
</REFNAMEDIV>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1997-12-24</DATE>
</REFSYNOPSISDIVINFO>
<synopsis>
pg_lo_export <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">lobjId</REPLACEABLE> <REPLACEABLE CLASS="PARAMETER">filename</REPLACEABLE>
</SYNOPSIS>

<REFSECT2 ID="R2-PGTCL-PGLOEXPORT-1">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Inputs -->入力
</TITLE>
<VARIABLELIST>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">conn</REPLACEABLE>
</TERM>
<LISTITEM>
<para><!-- Specifies a valid database connection. -->
有効なデータベース接続を指定します。

</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">lobjId</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- Large object identifier.
XXX Is this the same as the objOid in other calls?? thomas - 1998-01-11
-->

ラージオブジェクト識別子。<!-- XXX 他の呼び出しでいう objOid と同じものかな? 
thomas - 1998-01-11 -->
</para>
</LISTITEM>
</VARLISTENTRY>
<VARLISTENTRY>
<TERM>
  <REPLACEABLE CLASS="PARAMETER">filename</REPLACEABLE>
</TERM>
<LISTITEM>
<para>
<!-- Unix file name. -->Unixファイル名。
</para>
</LISTITEM>
</VARLISTENTRY>
</VARIABLELIST>
</REFSECT2>

<REFSECT2 ID="R2-PGTCL-PGLOEXPORT-2">
<REFSECT2INFO>
<DATE>1997-12-24</DATE>
</REFSECT2INFO>
<TITLE><!-- Outputs -->出力
</TITLE>
<para>
<!-- None 
XXX Does this return a lobjId? Is that the same as the objOid in other calls? thomas - 1998-01-11 -->

なし。<!--XXXこれはlobjIdを返すのではないかな? XXX他の呼び出しでいう 
objOidと同じものかな?  thomas - 1998-01-11-->

</para>
</REFSECT2>
</REFSYNOPSISDIV>

<REFSECT1 ID="R1-PGTCL-PGLOEXPORT-1">
<REFSECT1INFO>
<DATE>1997-12-24</DATE>
</REFSECT1INFO>
<TITLE><!-- Description -->説明
</TITLE>
<para>
<!-- <FUNCTION>pg_lo_export</FUNCTION> writes the specified large object 
into a Unix file. -->
<FUNCTION>pg_lo_export</FUNCTION>は、指定されたラージオブジェクトをUnixファイルに書き込みます。

</para>
</REFSECT1>
<REFSECT1 ID="R1-PGTCL-PGLOEXPORT-2">
<TITLE><!-- Usage -->使用方法
</TITLE>
<para>
  <!-- 
  <Function>pg_lo_export</Function> must be called within a BEGIN/END 
  transaction block. -->

  <Function>pg_lo_export</Function>は、BEGIN/ENDトランザクションブロック内部で呼び出す必要があります。


</para>
</REFSECT1>
</REFENTRY>

</Sect1>
</Chapter>
