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

Содержание

38.1. Концепция
38.2. Управление подключениями к базе данных
38.2.1. Подключение к серверу баз данных
38.2.2. Выбор подключения
38.2.3. Закрытие подключения
38.3. Запуск команд SQL
38.3.1. Выполнение SQL-операторов
38.3.2. Использование курсоров
38.3.3. Управление транзакциями
38.3.4. Подготовленные операторы
38.4. Использование переменных среды
38.4.1. Обзор
38.4.2. Секции объявлений
38.4.3. Получение результатов запроса
38.4.4. Сопоставление типов
38.4.5. Обработка непримитивных типов данных SQL
38.4.6. Индикаторы
38.5. Динамический SQL
38.5.1. Выполнение операторов без набора результатов
38.5.2. Выполнение оператора с входными параметрами
38.5.3. Выполнение оператора с набором результатов
38.6. Библиотека pgtypes
38.6.1. Символьные строки
38.6.2. Тип numeric
38.6.3. Тип date
38.6.4. Тип timestamp
38.6.5. Тип interval
38.6.6. Тип decimal
38.6.7. Значения errno, которые устанавливает pgtypeslib
38.6.8. Специальные константы pgtypeslib
38.7. Использование областей дескрипторов
38.7.1. Именованные области SQL-дескрипторов
38.7.2. Области дескрипторов SQLDA
38.8. Обработка ошибок
38.8.1. Установка обработчиков
38.8.2. sqlca
38.8.3. SQLSTATE и SQLCODE
38.9. Директивы препроцессора
38.9.1. Включение файлов
38.9.2. Директивы define и undef
38.9.3. Директивы ifdef, ifndef, elif, else и endif
38.10. Компиляция программ со встраиваемым SQL
38.11. Библиотечные функции
38.12. Большие объекты
38.13. Приложения на C++
38.13.1. Область видимости переменных среды
38.13.2. Разработка приложения на C++ с внешним модулем на C
38.14. Команды встраиваемого SQL
ALLOCATE DESCRIPTOR — выделить область SQL-дескриптора
CONNECT — установить подключение к базе данных
DEALLOCATE DESCRIPTOR — освободить область SQL-дескриптора
DECLARE — определить курсор
DECLARE STATEMENT — объявляет идентификатор SQL-оператора
DESCRIBE — получить информацию о подготовленном операторе или наборе результатов
DISCONNECT — закрыть подключение к базе данных
EXECUTE IMMEDIATE — динамически подготовить и выполнить оператор
GET DESCRIPTOR — получить информацию из области дескриптора SQL
OPEN — открыть динамический курсор
PREPARE — подготовить оператор к выполнению
SET AUTOCOMMIT — установить режим автофиксации для текущего сеанса
SET CONNECTION — выбрать подключение к базе данных
SET DESCRIPTOR — внести информацию в область дескриптора SQL
TYPE — создать новый тип данных
VAR — определить переменную
WHENEVER — определить действие, которое должно выполняться, когда при обработке SQL-оператора возникает определённое условие
38.15. Режим совместимости с Informix
38.15.1. Дополнительные типы
38.15.2. Дополнительные/недостающие операторы встраиваемого SQL
38.15.3. Области дескрипторов SQLDA, совместимые с Informix
38.15.4. Дополнительные функции
38.15.5. Дополнительные константы
38.16. Режим совместимости с Oracle
38.17. Внутреннее устройство

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

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

Chapter 38. ECPG — Embedded SQL in C

Table of Contents

38.1. The Concept
38.2. Managing Database Connections
38.2.1. Connecting to the Database Server
38.2.2. Choosing a Connection
38.2.3. Closing a Connection
38.3. Running SQL Commands
38.3.1. Executing SQL Statements
38.3.2. Using Cursors
38.3.3. Managing Transactions
38.3.4. Prepared Statements
38.4. Using Host Variables
38.4.1. Overview
38.4.2. Declare Sections
38.4.3. Retrieving Query Results
38.4.4. Type Mapping
38.4.5. Handling Nonprimitive SQL Data Types
38.4.6. Indicators
38.5. Dynamic SQL
38.5.1. Executing Statements without a Result Set
38.5.2. Executing a Statement with Input Parameters
38.5.3. Executing a Statement with a Result Set
38.6. pgtypes Library
38.6.1. Character Strings
38.6.2. The numeric Type
38.6.3. The date Type
38.6.4. The timestamp Type
38.6.5. The interval Type
38.6.6. The decimal Type
38.6.7. errno Values of pgtypeslib
38.6.8. Special Constants of pgtypeslib
38.7. Using Descriptor Areas
38.7.1. Named SQL Descriptor Areas
38.7.2. SQLDA Descriptor Areas
38.8. Error Handling
38.8.1. Setting Callbacks
38.8.2. sqlca
38.8.3. SQLSTATE vs. SQLCODE
38.9. Preprocessor Directives
38.9.1. Including Files
38.9.2. The define and undef Directives
38.9.3. ifdef, ifndef, elif, else, and endif Directives
38.10. Processing Embedded SQL Programs
38.11. Library Functions
38.12. Large Objects
38.13. C++ Applications
38.13.1. Scope for Host Variables
38.13.2. C++ Application Development with External C Module
38.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
DECLARE STATEMENT — declare SQL statement identifier
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
38.15. Informix Compatibility Mode
38.15.1. Additional Types
38.15.2. Additional/Missing Embedded SQL Statements
38.15.3. Informix-compatible SQLDA Descriptor Areas
38.15.4. Additional Functions
38.15.5. Additional Constants
38.16. Oracle Compatibility Mode
38.17. 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