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

Содержание

35.1. Концепция
35.2. Управление подключениями к базе данных
35.2.1. Подключение к серверу баз данных
35.2.2. Выбор подключения
35.2.3. Закрытие подключения
35.3. Запуск команд SQL
35.3.1. Выполнение SQL-операторов
35.3.2. Использование курсоров
35.3.3. Управление транзакциями
35.3.4. Подготовленные операторы
35.4. Использование переменных среды
35.4.1. Обзор
35.4.2. Секции объявлений
35.4.3. Получение результатов запроса
35.4.4. Сопоставление типов
35.4.5. Обработка непримитивных типов данных SQL
35.4.6. Индикаторы
35.5. Динамический SQL
35.5.1. Выполнение операторов без набора результатов
35.5.2. Выполнение оператора с входными параметрами
35.5.3. Выполнение оператора с набором результатов
35.6. Библиотека pgtypes
35.6.1. Символьные строки
35.6.2. Тип numeric
35.6.3. Тип date
35.6.4. Тип timestamp
35.6.5. Тип interval
35.6.6. Тип decimal
35.6.7. Значения errno, которые устанавливает pgtypeslib
35.6.8. Специальные константы pgtypeslib
35.7. Использование областей дескрипторов
35.7.1. Именованные области SQL-дескрипторов
35.7.2. Области дескрипторов SQLDA
35.8. Обработка ошибок
35.8.1. Установка обработчиков
35.8.2. sqlca
35.8.3. SQLSTATE и SQLCODE
35.9. Директивы препроцессора
35.9.1. Включение файлов
35.9.2. Директивы define и undef
35.9.3. Директивы ifdef, ifndef, elif, else и endif
35.10. Компиляция программ со встраиваемым SQL
35.11. Библиотечные функции
35.12. Большие объекты
35.13. Приложения на C++
35.13.1. Область видимости переменных среды
35.13.2. Разработка приложения на C++ с внешним модулем на C
35.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-оператора возникает определённое условие
35.15. Режим совместимости с Informix
35.15.1. Дополнительные типы
35.15.2. Дополнительные/недостающие операторы встраиваемого SQL
35.15.3. Области дескрипторов SQLDA, совместимые с Informix
35.15.4. Дополнительные функции
35.15.5. Дополнительные константы
35.16. Режим совместимости с Oracle
35.17. Внутреннее устройство

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

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

Chapter 35. ECPG — Embedded SQL in C

Table of Contents

35.1. The Concept
35.2. Managing Database Connections
35.2.1. Connecting to the Database Server
35.2.2. Choosing a Connection
35.2.3. Closing a Connection
35.3. Running SQL Commands
35.3.1. Executing SQL Statements
35.3.2. Using Cursors
35.3.3. Managing Transactions
35.3.4. Prepared Statements
35.4. Using Host Variables
35.4.1. Overview
35.4.2. Declare Sections
35.4.3. Retrieving Query Results
35.4.4. Type Mapping
35.4.5. Handling Nonprimitive SQL Data Types
35.4.6. Indicators
35.5. Dynamic SQL
35.5.1. Executing Statements without a Result Set
35.5.2. Executing a Statement with Input Parameters
35.5.3. Executing a Statement with a Result Set
35.6. pgtypes Library
35.6.1. Character Strings
35.6.2. The numeric Type
35.6.3. The date Type
35.6.4. The timestamp Type
35.6.5. The interval Type
35.6.6. The decimal Type
35.6.7. errno Values of pgtypeslib
35.6.8. Special Constants of pgtypeslib
35.7. Using Descriptor Areas
35.7.1. Named SQL Descriptor Areas
35.7.2. SQLDA Descriptor Areas
35.8. Error Handling
35.8.1. Setting Callbacks
35.8.2. sqlca
35.8.3. SQLSTATE vs. SQLCODE
35.9. Preprocessor Directives
35.9.1. Including Files
35.9.2. The define and undef Directives
35.9.3. ifdef, ifndef, elif, else, and endif Directives
35.10. Processing Embedded SQL Programs
35.11. Library Functions
35.12. Large Objects
35.13. C++ Applications
35.13.1. Scope for Host Variables
35.13.2. C++ Application Development with External C Module
35.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
35.15. Informix Compatibility Mode
35.15.1. Additional Types
35.15.2. Additional/Missing Embedded SQL Statements
35.15.3. Informix-compatible SQLDA Descriptor Areas
35.15.4. Additional Functions
35.15.5. Additional Constants
35.16. Oracle Compatibility Mode
35.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