34.4.4.2.3. numeric, decimal.............................................................825
34.4.4.3. Host Variables with Nonprimitive Types .................................... 826
34.4.4.3.1. Arrays .............................................................................826
34.4.4.3.2. Structures ........................................................................ 827
34.4.4.3.3. Typedefs..........................................................................828
34.4.4.3.4. Pointers ...........................................................................829
34.4.5. Handling Nonprimitive SQL Data Types.................................................829
34.4.5.1. Arrays..........................................................................................829
34.4.5.2. Composite Types .........................................................................831
34.4.5.3. User-defined Base Types .............................................................833
34.4.6. Indicators..................................................................................................834
34.5. Dynamic SQL.......................................................................................................834
34.5.1. Executing Statements without a Result Set ............................................. 834
34.5.2. Executing a Statement with Input Parameters ......................................... 835
34.5.3. Executing a Statement with a Result Set ................................................. 835
34.6. pgtypes Library.....................................................................................................836
34.6.1. Character Strings......................................................................................837
34.6.2. The numeric Type ....................................................................................837
34.6.3. The date Type........................................................................................... 839
34.6.4. The timestamp Type................................................................................. 843
34.6.5. The interval Type .....................................................................................846
34.6.6. The decimal Type..................................................................................... 847
34.6.7. errno Values of pgtypeslib .......................................................................847
34.6.8. Special Constants of pgtypeslib............................................................... 848
34.7. Using Descriptor Areas ........................................................................................849
34.7.1. Named SQL Descriptor Areas .................................................................849
34.7.2. SQLDA Descriptor Areas ........................................................................851
34.7.2.1. SQLDA Data Structure................................................................852
34.7.2.1.1. sqlda_t Structure ............................................................. 852
34.7.2.1.2. sqlvar_t Structure............................................................ 853
34.7.2.1.3. struct sqlname Structure .................................................853
34.7.2.2. Retrieving a Result Set Using an SQLDA ..................................854
34.7.2.3. Passing Query Parameters Using an SQLDA..............................855
34.7.2.4. A Sample Application Using SQLDA ........................................856
34.8. Error Handling...................................................................................................... 862
34.8.1. Setting Callbacks ..................................................................................... 862
34.8.2. sqlca ......................................................................................................... 864
34.8.3. SQLSTATE vs. SQLCODE........................................................................... 865
34.9. Preprocessor Directives ........................................................................................ 869
34.9.1. Including Files ......................................................................................... 869
34.9.2. The define and undef Directives .............................................................. 869
34.9.3. ifdef, ifndef, else, elif, and endif Directives.............................................870
34.10. Processing Embedded SQL Programs................................................................ 871
34.11. Library Functions ...............................................................................................872
34.12. Large Objects...................................................................................................... 872
34.13. C++ Applications ...............................................................................................874
34.13.1. Scope for Host Variables........................................................................874
34.13.2. C++ Application Development with External C Module ......................876
34.14. Embedded SQL Commands ...............................................................................878
ALLOCATE DESCRIPTOR ...............................................................................878
CONNECT...........................................................................................................880
DEALLOCATE DESCRIPTOR .......................................................................... 883
xviii