</programlisting>
</para>
<para>
Next, generate <filename>test_cpp.o</filename> by compiling
<filename>test_cpp.cpp</filename> with the C++ compiler:
<programlisting>
c++ -c test_cpp.cpp -o test_cpp.o
</programlisting>
</para>
<para>
Finally, link these object files, <filename>test_cpp.o</filename>
and <filename>test_mod.o</filename>, into one executable, using the C++
compiler driver:
<programlisting>
c++ test_cpp.o test_mod.o -lecpg -o test_cpp
</programlisting>
</para>
</sect2>
</sect1>
<sect1 id="ecpg-sql-commands">
<title>Embedded SQL Commands</title>
<para>
This section describes all SQL commands that are specific to
embedded SQL. Also refer to the SQL commands listed
in <xref linkend="sql-commands"/>, which can also be used in
embedded SQL, unless stated otherwise.
</para>
<refentry id="ecpg-sql-allocate-descriptor">
<refnamediv>
<refname>ALLOCATE DESCRIPTOR</refname>
<refpurpose>allocate an SQL descriptor area</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>
ALLOCATE DESCRIPTOR <replaceable class="parameter">name</replaceable>
</synopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
<command>ALLOCATE DESCRIPTOR</command> allocates a new named SQL
descriptor area, which can be used to exchange data between the
PostgreSQL server and the host program.
</para>
<para>
Descriptor areas should be freed after use using
the <command>DEALLOCATE DESCRIPTOR</command> command.
</para>
</refsect1>
<refsect1>
<title>Parameters</title>
<variablelist>
<varlistentry id="ecpg-sql-allocate-descriptor-name">
<term><replaceable class="parameter">name</replaceable></term>
<listitem>
<para>
A name of SQL descriptor, case sensitive. This can be an SQL
identifier or a host variable.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Examples</title>
<programlisting>
EXEC SQL ALLOCATE DESCRIPTOR mydesc;
</programlisting>
</refsect1>
<refsect1>
<title>Compatibility</title>
<para>
<command>ALLOCATE DESCRIPTOR</command> is specified in the SQL
standard.
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<simplelist type="inline">
<member><xref linkend="ecpg-sql-deallocate-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-connect">
<refnamediv>
<refname>CONNECT</refname>
<refpurpose>establish a database connection</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>
CONNECT TO <replaceable>connection_target</replaceable> [ AS <replaceable>connection_name</replaceable> ] [ USER <replaceable>connection_user</replaceable> ]
CONNECT TO DEFAULT
CONNECT <replaceable>connection_user</replaceable>
DATABASE <replaceable>connection_target</replaceable>
</synopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
The <command>CONNECT</command> command establishes a connection
between the client and the PostgreSQL server.
</para>
</refsect1>
<refsect1>
<title>Parameters</title>
<variablelist>
<varlistentry id="ecpg-sql-connect-connection-target">
<term><replaceable class="parameter">connection_target</replaceable></term>
<listitem>
<para>
<replaceable class="parameter">connection_target</replaceable>
specifies the target server of the connection on one of
several forms.
<variablelist>
<varlistentry id="ecpg-sql-connect-connection-target-database-name">
<term>[ <replaceable>database_name</replaceable> ] [ <literal>@</literal><replaceable>host</replaceable> ] [ <literal>:</literal><replaceable>port</replaceable>