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

Содержание

34.1. Концепция
34.2. Управление подключениями к базе данных
34.2.1. Подключение к серверу баз данных
34.2.2. Выбор подключения
34.2.3. Закрытие подключения
34.3. Запуск команд SQL
34.3.1. Выполнение SQL-операторов
34.3.2. Использование курсоров
34.3.3. Управление транзакциями
34.3.4. Подготовленные операторы
34.4. Использование переменных среды
34.4.1. Обзор
34.4.2. Секции объявлений
34.4.3. Получение результатов запроса
34.4.4. Сопоставление типов
34.4.5. Обработка непримитивных типов данных SQL
34.4.6. Индикаторы
34.5. Динамический SQL
34.5.1. Выполнение операторов без набора результатов
34.5.2. Выполнение оператора с входными параметрами
34.5.3. Выполнение оператора с набором результатов
34.6. Библиотека pgtypes
34.6.1. Символьные строки
34.6.2. Тип numeric
34.6.3. Тип date
34.6.4. Тип timestamp
34.6.5. Тип interval
34.6.6. Тип decimal
34.6.7. Значения errno, которые устанавливает pgtypeslib
34.6.8. Специальные константы pgtypeslib
34.7. Использование областей дескрипторов
34.7.1. Именованные области SQL-дескрипторов
34.7.2. Области дескрипторов SQLDA
34.8. Обработка ошибок
34.8.1. Установка обработчиков
34.8.2. sqlca
34.8.3. SQLSTATE и SQLCODE
34.9. Директивы препроцессора
34.9.1. Включение файлов
34.9.2. Директивы define и undef
34.9.3. Директивы ifdef, ifndef, else, elif и endif
34.10. Компиляция программ со встраиваемым SQL
34.11. Библиотечные функции
34.12. Большие объекты
34.13. Приложения на C++
34.13.1. Область видимости переменных среды
34.13.2. Разработка приложения на C++ с внешним модулем на C
34.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-оператора возникает определённое условие
34.15. Режим совместимости с Informix
34.15.1. Дополнительные типы
34.15.2. Дополнительные/недостающие операторы встраиваемого SQL
34.15.3. Области дескрипторов SQLDA, совместимые с Informix
34.15.4. Дополнительные функции
34.15.5. Дополнительные константы
34.16. Внутреннее устройство

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

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

Chapter 34. ECPG - Embedded SQL in C

Table of Contents

34.1. The Concept
34.2. Managing Database Connections
34.2.1. Connecting to the Database Server
34.2.2. Choosing a Connection
34.2.3. Closing a Connection
34.3. Running SQL Commands
34.3.1. Executing SQL Statements
34.3.2. Using Cursors
34.3.3. Managing Transactions
34.3.4. Prepared Statements
34.4. Using Host Variables
34.4.1. Overview
34.4.2. Declare Sections
34.4.3. Retrieving Query Results
34.4.4. Type Mapping
34.4.5. Handling Nonprimitive SQL Data Types
34.4.6. Indicators
34.5. Dynamic SQL
34.5.1. Executing Statements without a Result Set
34.5.2. Executing a Statement with Input Parameters
34.5.3. Executing a Statement with a Result Set
34.6. pgtypes Library
34.6.1. Character Strings
34.6.2. The numeric Type
34.6.3. The date Type
34.6.4. The timestamp Type
34.6.5. The interval Type
34.6.6. The decimal Type
34.6.7. errno Values of pgtypeslib
34.6.8. Special Constants of pgtypeslib
34.7. Using Descriptor Areas
34.7.1. Named SQL Descriptor Areas
34.7.2. SQLDA Descriptor Areas
34.8. Error Handling
34.8.1. Setting Callbacks
34.8.2. sqlca
34.8.3. SQLSTATE vs. SQLCODE
34.9. Preprocessor Directives
34.9.1. Including Files
34.9.2. The define and undef Directives
34.9.3. ifdef, ifndef, else, elif, and endif Directives
34.10. Processing Embedded SQL Programs
34.11. Library Functions
34.12. Large Objects
34.13. C++ Applications
34.13.1. Scope for Host Variables
34.13.2. C++ Application Development with External C Module
34.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
34.15. Informix Compatibility Mode
34.15.1. Additional Types
34.15.2. Additional/Missing Embedded SQL Statements
34.15.3. Informix-compatible SQLDA Descriptor Areas
34.15.4. Additional Functions
34.15.5. Additional Constants
34.16. Internals

This chapter describes the embedded SQL package for Postgres Pro. 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