unix:postgresql://localhost/connectdb?connect_timeout=14 USER connectuser;
</programlisting>
</para>
<para>
Here is an example program that illustrates the use of host
variables to specify connection parameters:
<programlisting>
int
main(void)
{
EXEC SQL BEGIN DECLARE SECTION;
char *dbname = "testdb"; /* database name */
char *user = "testuser"; /* connection user name */
char *connection = "tcp:postgresql://localhost:5432/testdb";
/* connection string */
char ver[256]; /* buffer to store the version string */
EXEC SQL END DECLARE SECTION;
ECPGdebug(1, stderr);
EXEC SQL CONNECT TO :dbname USER :user;
EXEC SQL SELECT pg_catalog.set_config('search_path', '', false); EXEC SQL COMMIT;
EXEC SQL SELECT version() INTO :ver;
EXEC SQL DISCONNECT;
printf("version: %s\n", ver);
EXEC SQL CONNECT TO :connection USER :user;
EXEC SQL SELECT pg_catalog.set_config('search_path', '', false); EXEC SQL COMMIT;
EXEC SQL SELECT version() INTO :ver;
EXEC SQL DISCONNECT;
printf("version: %s\n", ver);
return 0;
}
</programlisting>
</para>
</refsect1>
<refsect1>
<title>Compatibility</title>
<para>
<command>CONNECT</command> is specified in the SQL standard, but
the format of the connection parameters is
implementation-specific.
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<simplelist type="inline">
<member><xref linkend="ecpg-sql-disconnect"/></member>
<member><xref linkend="ecpg-sql-set-connection"/></member>
</simplelist>
</refsect1>
</refentry>
<refentry id="ecpg-sql-deallocate-descriptor">
<refnamediv>
<refname>DEALLOCATE DESCRIPTOR</refname>
<refpurpose>deallocate an SQL descriptor area</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>
DEALLOCATE DESCRIPTOR <replaceable class="parameter">name</replaceable>
</synopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
<command>DEALLOCATE DESCRIPTOR</command> deallocates a named SQL
descriptor area.
</para>
</refsect1>
<refsect1>
<title>Parameters</title>
<variablelist>
<varlistentry id="ecpg-sql-deallocate-descriptor-name">
<term><replaceable class="parameter">name</replaceable></term>
<listitem>
<para>
The name of the descriptor which is going to be deallocated.
It is case sensitive. This can be an SQL identifier or a host
variable.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Examples</title>
<programlisting>
EXEC SQL DEALLOCATE DESCRIPTOR mydesc;
</programlisting>
</refsect1>
<refsect1>
<title>Compatibility</title>
<para>
<command>DEALLOCATE DESCRIPTOR</command> is specified in the SQL
standard.
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<simplelist type="inline">
<member><xref linkend="ecpg-sql-allocate-descriptor"/></member>
<member><xref linkend="ecpg-sql-get-descriptor"/></member>
<member><xref linkend="ecpg-sql-set-descriptor"/></member>
</simplelist>
</refsect1>
</refentry>
<refentry id="ecpg-sql-declare">
<refnamediv>
<refname>DECLARE</refname>
<refpurpose>define a cursor</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>
DECLARE <replaceable class="parameter">cursor_name</replaceable> [ BINARY ] [ ASENSITIVE | INSENSITIVE ] [ [ NO ] SCROLL ] CURSOR [ { WITH | WITHOUT } HOLD ] FOR <replaceable class="parameter">prepared_name</replaceable>
DECLARE <replaceable class="parameter">cursor_name</replaceable> [ BINARY ] [ ASENSITIVE | INSENSITIVE ] [ [ NO ] SCROLL ] CURSOR [ { WITH | WITHOUT } HOLD ] FOR <replaceable class="parameter">query</replaceable>
</synopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
<command>DECLARE</command>