Глава 33. ECPG — встраиваемый SQL в C

Содержание
33.1. Концепция
33.2. Управление подключениями к базе данных
33.2.1. Подключение к серверу баз данных
33.2.2. Выбор подключения
33.2.3. Закрытие подключения
33.3. Запуск команд SQL
33.3.1. Выполнение операторов SQL
33.3.2. Использование курсоров
33.3.3. Управление транзакциями
33.3.4. Подготовленные операторы
33.4. Использование переменных среды
33.4.1. Обзор
33.4.2. Секции объявлений
33.4.3. Получение результатов запроса
33.4.4. Сопоставление типов
33.4.5. Обработка непримитивных типов данных SQL
33.4.6. Индикаторы
33.5. Динамический SQL
33.5.1. Выполнение операторов без набора результатов
33.5.2. Выполнение оператора с входными параметрами
33.5.3. Выполнение оператора с набором результатов
33.6. Библиотека pgtypes
33.6.1. Тип numeric
33.6.2. Тип date
33.6.3. Тип timestamp
33.6.4. Тип interval
33.6.5. Тип decimal
33.6.6. Значения errno, которые устанавливает pgtypeslib
33.6.7. Специальные константы pgtypeslib
33.7. Использование областей дескрипторов
33.7.1. Именованные области SQL-дескрипторов
33.7.2. Области дескрипторов SQLDA
33.8. Обработка ошибок
33.8.1. Установка обработчиков
33.8.2. sqlca
33.8.3. SQLSTATE и SQLCODE
33.9. Директивы препроцессора
33.9.1. Включение файлов
33.9.2. Директивы define и undef
33.9.3. Директивы ifdef, ifndef, else, elif и endif
33.10. Компиляция программ со встраиваемым SQL
33.11. Библиотечные функции
33.12. Большие объекты
33.13. Приложения на C++
33.13.1. Область видимости переменных среды
33.13.2. Разработка приложения на C++ с внешним модулем на C
33.14. Команды встраиваемого SQL
ALLOCATE DESCRIPTOR -- выделить область SQL-дескриптора
CONNECT -- установить подключение к базе данных
DEALLOCATE DESCRIPTOR -- освободить область SQL-дескриптора
DECLARE -- определить курсор
DESCRIBE -- получить информацию о подготовленном операторе или наборе результатов
DISCONNECT -- закрыть подключение к базе данных
EXECUTE IMMEDIATE -- динамически подготовить и выполнить оператор
GET DESCRIPTOR -- получить информацию из области дескриптора SQL
OPEN -- открыть динамический курсор
PREPARE -- подготовить оператор к выполнению
SET AUTOCOMMIT -- установить режим автофиксации для текущего сеанса
SET CONNECTION -- выбрать подключение к базе данных
SET DESCRIPTOR -- внести информацию в область дескриптора SQL
TYPE -- создать новый тип данных
VAR -- определить переменную
WHENEVER -- определить действие, которое должно выполняться, когда при обработке SQL-оператора возникает определённое условие
33.15. Режим совместимости с Informix
33.15.1. Дополнительные типы
33.15.2. Дополнительные/недостающие операторы встраиваемого SQL
33.15.3. Области дескрипторов SQLDA, совместимые с Informix
33.15.4. Дополнительные функции
33.15.5. Дополнительные константы
33.16. Внутреннее устройство

В этой главе описывается встраиваемый SQL для PostgreSQL. Авторы этой разработки: Линус Толке () и Михаэль Мескес (). Изначально этот проект предназначался для C. Сейчас он также работает с C++, но пока не распознаёт все конструкции C++.

Эта документация не абсолютно полная, но так как этот интерфейс стандартизирован, дополнительные сведения можно почерпнуть во многих ресурсах, посвящённых SQL.

Chapter 33. ECPG - Embedded SQL in C

Table of Contents
33.1. The Concept
33.2. Managing Database Connections
33.2.1. Connecting to the Database Server
33.2.2. Choosing a Connection
33.2.3. Closing a Connection
33.3. Running SQL Commands
33.3.1. Executing SQL Statements
33.3.2. Using Cursors
33.3.3. Managing Transactions
33.3.4. Prepared Statements
33.4. Using Host Variables
33.4.1. Overview
33.4.2. Declare Sections
33.4.3. Retrieving Query Results
33.4.4. Type Mapping
33.4.5. Handling Nonprimitive SQL Data Types
33.4.6. Indicators
33.5. Dynamic SQL
33.5.1. Executing Statements without a Result Set
33.5.2. Executing a Statement with Input Parameters
33.5.3. Executing a Statement with a Result Set
33.6. pgtypes Library
33.6.1. The numeric Type
33.6.2. The date Type
33.6.3. The timestamp Type
33.6.4. The interval Type
33.6.5. The decimal Type
33.6.6. errno Values of pgtypeslib
33.6.7. Special Constants of pgtypeslib
33.7. Using Descriptor Areas
33.7.1. Named SQL Descriptor Areas
33.7.2. SQLDA Descriptor Areas
33.8. Error Handling
33.8.1. Setting Callbacks
33.8.2. sqlca
33.8.3. SQLSTATE vs. SQLCODE
33.9. Preprocessor Directives
33.9.1. Including Files
33.9.2. The define and undef Directives
33.9.3. ifdef, ifndef, else, elif, and endif Directives
33.10. Processing Embedded SQL Programs
33.11. Library Functions
33.12. Large Objects
33.13. C++ Applications
33.13.1. Scope for Host Variables
33.13.2. C++ Application Development with External C Module
33.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
33.15. Informix Compatibility Mode
33.15.1. Additional Types
33.15.2. Additional/Missing Embedded SQL Statements
33.15.3. Informix-compatible SQLDA Descriptor Areas
33.15.4. Additional Functions
33.15.5. Additional Constants
33.16. Internals

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.

FAQ