Now that you have an idea how to form embedded SQL C programs, you
probably want to know how to compile them. Before compiling you
run the file through the embedded SQL
C preprocessor, which converts the
SQL statements you used to special function
calls. After compiling, you must link with a special library that
contains the needed functions. These functions fetch information
from the arguments, perform the SQL query using
the libpq interface, and put the result
in the arguments specified for output.
The preprocessor program is called ecpg and is
included in a normal PostgreSQL installation. Embedded SQL
programs are typically named with an extension
.pgc. If you have a program file called
prog1.pgc, you can preprocess it by simply
calling
ecpg prog1.pgc
This will create a file called prog1.c. If
your input files do not follow the suggested naming pattern, you
can specify the output file explicitly using the
-o option.
The preprocessed file can be compiled normally, for example
cc -c prog1.c
The generated C source files include headers files from the
PostgreSQL installation, so if you installed PostgreSQL in a
location that is not searched by default, you have to add an option
such as -I/usr/local/pgsql/include to the
compilation command line.
To link an embedded SQL program, you need to include the
libecpg library, like so:
cc -o myprog prog1.o prog2.o ... -lecpg
Again, you might have to add an option like
-L/usr/local/pgsql/lib to that command line.
If you manage the build process of a larger project using
make, it may be convenient to include
the following implicit rule to your makefiles:
ECPG = ecpg
%.c: %.pgc
$(ECPG) $<
The complete syntax of the ecpg command is
detailed in the PostgreSQL 7.3 Reference Manual.