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

Содержание

37.1. Концепция
37.2. Управление подключениями к базе данных
37.2.1. Подключение к серверу баз данных
37.2.2. Выбор подключения
37.2.3. Закрытие подключения
37.3. Запуск команд SQL
37.3.1. Выполнение SQL-операторов
37.3.2. Использование курсоров
37.3.3. Управление транзакциями
37.3.4. Подготовленные операторы
37.4. Использование переменных среды
37.4.1. Обзор
37.4.2. Секции объявлений
37.4.3. Получение результатов запроса
37.4.4. Сопоставление типов
37.4.5. Обработка непримитивных типов данных SQL
37.4.6. Индикаторы
37.5. Динамический SQL
37.5.1. Выполнение операторов без набора результатов
37.5.2. Выполнение оператора с входными параметрами
37.5.3. Выполнение оператора с набором результатов
37.6. Библиотека pgtypes
37.6.1. Символьные строки
37.6.2. Тип numeric
37.6.3. Тип date
37.6.4. Тип timestamp
37.6.5. Тип interval
37.6.6. Тип decimal
37.6.7. Значения errno, которые устанавливает pgtypeslib
37.6.8. Специальные константы pgtypeslib
37.7. Использование областей дескрипторов
37.7.1. Именованные области SQL-дескрипторов
37.7.2. Области дескрипторов SQLDA
37.8. Обработка ошибок
37.8.1. Установка обработчиков
37.8.2. sqlca
37.8.3. SQLSTATE и SQLCODE
37.9. Директивы препроцессора
37.9.1. Включение файлов
37.9.2. Директивы define и undef
37.9.3. Директивы ifdef, ifndef, else, elif и endif
37.10. Компиляция программ со встраиваемым SQL
37.11. Библиотечные функции
37.12. Большие объекты
37.13. Приложения на C++
37.13.1. Область видимости переменных среды
37.13.2. Разработка приложения на C++ с внешним модулем на C
37.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-оператора возникает определённое условие
37.15. Режим совместимости с Informix
37.15.1. Дополнительные типы
37.15.2. Дополнительные/недостающие операторы встраиваемого SQL
37.15.3. Области дескрипторов SQLDA, совместимые с Informix
37.15.4. Дополнительные функции
37.15.5. Дополнительные константы
37.16. Режим совместимости с Oracle
37.17. Внутреннее устройство

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

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

Chapter 37. ECPG - Embedded SQL in C

Table of Contents

37.1. The Concept
37.2. Managing Database Connections
37.2.1. Connecting to the Database Server
37.2.2. Choosing a Connection
37.2.3. Closing a Connection
37.3. Running SQL Commands
37.3.1. Executing SQL Statements
37.3.2. Using Cursors
37.3.3. Managing Transactions
37.3.4. Prepared Statements
37.4. Using Host Variables
37.4.1. Overview
37.4.2. Declare Sections
37.4.3. Retrieving Query Results
37.4.4. Type Mapping
37.4.5. Handling Nonprimitive SQL Data Types
37.4.6. Indicators
37.5. Dynamic SQL
37.5.1. Executing Statements without a Result Set
37.5.2. Executing a Statement with Input Parameters
37.5.3. Executing a Statement with a Result Set
37.6. pgtypes Library
37.6.1. Character Strings
37.6.2. The numeric Type
37.6.3. The date Type
37.6.4. The timestamp Type
37.6.5. The interval Type
37.6.6. The decimal Type
37.6.7. errno Values of pgtypeslib
37.6.8. Special Constants of pgtypeslib
37.7. Using Descriptor Areas
37.7.1. Named SQL Descriptor Areas
37.7.2. SQLDA Descriptor Areas
37.8. Error Handling
37.8.1. Setting Callbacks
37.8.2. sqlca
37.8.3. SQLSTATE vs. SQLCODE
37.9. Preprocessor Directives
37.9.1. Including Files
37.9.2. The define and undef Directives
37.9.3. ifdef, ifndef, else, elif, and endif Directives
37.10. Processing Embedded SQL Programs
37.11. Library Functions
37.12. Large Objects
37.13. C++ Applications
37.13.1. Scope for Host Variables
37.13.2. C++ Application Development with External C Module
37.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
37.15. Informix Compatibility Mode
37.15.1. Additional Types
37.15.2. Additional/Missing Embedded SQL Statements
37.15.3. Informix-compatible SQLDA Descriptor Areas
37.15.4. Additional Functions
37.15.5. Additional Constants
37.16. Oracle Compatibility Mode
37.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