Chapter 32. ECPG - Embedded SQL in C

Table of Contents
32.1. The Concept
32.2. Managing Database Connections
32.2.1. Connecting to the Database Server
32.2.2. Choosing a Connection
32.2.3. Closing a Connection
32.3. Running SQL Commands
32.3.1. Executing SQL Statements
32.3.2. Using Cursors
32.3.3. Managing Transactions
32.3.4. Prepared Statements
32.4. Using Host Variables
32.4.1. Overview
32.4.2. Declare Sections
32.4.3. Retrieving Query Results
32.4.4. Type Mapping
32.4.5. Handling Nonprimitive SQL Data Types
32.4.6. Indicators
32.5. Dynamic SQL
32.5.1. Executing Statements without a Result Set
32.5.2. Executing a Statement with Input Parameters
32.5.3. Executing a Statement with a Result Set
32.6. pgtypes Library
32.6.1. The numeric Type
32.6.2. The date Type
32.6.3. The timestamp Type
32.6.4. The interval Type
32.6.5. The decimal Type
32.6.6. errno Values of pgtypeslib
32.6.7. Special Constants of pgtypeslib
32.7. Using Descriptor Areas
32.7.1. Named SQL Descriptor Areas
32.7.2. SQLDA Descriptor Areas
32.8. Error Handling
32.8.1. Setting Callbacks
32.8.2. sqlca
32.8.3. SQLSTATE vs. SQLCODE
32.9. Preprocessor Directives
32.9.1. Including Files
32.9.2. The define and undef Directives
32.9.3. ifdef, ifndef, else, elif, and endif Directives
32.10. Processing Embedded SQL Programs
32.11. Library Functions
32.12. Large Objects
32.13. C++ Applications
32.13.1. Scope for Host Variables
32.13.2. C++ Application Development with External C Module
32.14. Embedded SQL Commands
ALLOCATE DESCRIPTOR -- allocate an SQL descriptor area
CONNECT -- establish a database connection
DEALLOCATE DESCRIPTOR -- deallocate an SQL descriptor area
DECLARE -- define a cursor
DESCRIBE -- obtain information about a prepared statement or result set
DISCONNECT -- terminate a database connection
EXECUTE IMMEDIATE -- dynamically prepare and execute a statement
GET DESCRIPTOR -- get information from an SQL descriptor area
OPEN -- open a dynamic cursor
PREPARE -- prepare a statement for execution
SET AUTOCOMMIT -- set the autocommit behavior of the current session
SET CONNECTION -- select a database connection
SET DESCRIPTOR -- set information in an SQL descriptor area
TYPE -- define a new data type
VAR -- define a variable
WHENEVER -- specify the action to be taken when an SQL statement causes a specific class condition to be raised
32.15. Informix Compatibility Mode
32.15.1. Additional Types
32.15.2. Additional/Missing Embedded SQL Statements
32.15.3. Informix-compatible SQLDA Descriptor Areas
32.15.4. Additional Functions
32.15.5. Additional Constants
32.16. Internals

Note: The following description applies both to Postgres-XC and PostgreSQL if not described explicitly. You can read PostgreSQL as Postgres-XC except for version number, which is specific to each product.

This chapter describes the embedded SQL package for PostgreSQL. It was written by Linus Tolke () and Michael Meskes (). Originally it was written to work with C. It also works with C++, but it does not recognize all C++ constructs yet.

This documentation is quite incomplete. But since this interface is standardized, additional information can be found in many resources about SQL.