Глава 36. libpq — библиотека для языка C

Содержание

36.1. Функции управления подключением к базе данных
36.1.1. Строки параметров подключения
36.1.2. Ключевые слова-параметры
36.2. Функции, описывающие текущее состояние подключения
36.3. Функции для исполнения команд
36.3.1. Главные функции
36.3.2. Извлечение информации, связанной с результатом запроса
36.3.3. Получение другой информации о результате
36.3.4. Экранирование строковых значений для включения в SQL-команды
36.4. Асинхронная обработка команд
36.5. Конвейерный режим
36.5.1. Использование конвейерного режима
36.5.2. Функции, связанные с конвейерным режимом
36.5.3. Когда использовать конвейерный режим
36.6. Извлечение порциями информации, связанной с результатом запроса
36.7. Отмена запросов в процессе выполнения
36.7.1. Функции для отправки запросов отмены
36.7.2. Устаревшие функции для отправки запросов отмены
36.8. Интерфейс быстрого пути
36.9. Асинхронное уведомление
36.10. Функции, связанные с командой COPY
36.10.1. Функции для передачи данных COPY
36.10.2. Функции для приёма данных COPY
36.10.3. Устаревшие функции для COPY
36.11. Функции управления
36.12. Функции разного назначения
36.13. Обработка замечаний
36.14. Система событий
36.14.1. Типы событий
36.14.2. Процедура обработки событий
36.14.3. Функции поддержки событий
36.14.4. Пример обработки событий
36.15. Переменные окружения
36.16. Файл паролей
36.17. Файл служб соединения
36.18. Получение параметров соединения через LDAP
36.19. Поддержка SSL
36.19.1. Проверка сертификатов сервера на стороне клиента
36.19.2. Клиентские сертификаты
36.19.3. Защита, обеспечиваемая в различных режимах
36.19.4. Файлы, используемые клиентом SSL
36.19.5. Инициализация библиотеки SSL
36.20. Поддержка OAuth
36.20.1. Обработчики Authdata
36.20.2. Отладка и параметры для разработчика
36.21. Поведение в многопоточных программах
36.22. Сборка программ с libpq
36.23. Примеры программ

libpq — это интерфейс Postgres Pro для программирования приложений на языке C. Библиотека libpq содержит набор функций, используя которые клиентские программы могут передавать запросы серверу Postgres Pro и принимать результаты этих запросов.

libpq также является базовым механизмом для нескольких других прикладных интерфейсов Postgres Pro, включая те, что написаны для C++, Perl, Python, Tcl и ECPG. Поэтому некоторые аспекты поведения libpq будут важны для вас, если вы используете один из этих пакетов. В частности, Раздел 36.15, Раздел 36.16 и Раздел 36.19 описывают поведение, видимое пользователю любого приложения, использующего libpq.

В конце этой главы приведены короткие программы (Раздел 36.23), показывающие, как использовать libpq в своих программах.

Клиентские программы, которые используют libpq, должны включать заголовочный файл libpq-fe.h и должны компоноваться с библиотекой libpq.

Chapter 36. libpq — C Library

Table of Contents

36.1. Database Connection Control Functions
36.1.1. Connection Strings
36.1.2. Parameter Key Words
36.2. Connection Status Functions
36.3. Command Execution Functions
36.3.1. Main Functions
36.3.2. Retrieving Query Result Information
36.3.3. Retrieving Other Result Information
36.3.4. Escaping Strings for Inclusion in SQL Commands
36.4. Asynchronous Command Processing
36.5. Pipeline Mode
36.5.1. Using Pipeline Mode
36.5.2. Functions Associated with Pipeline Mode
36.5.3. When to Use Pipeline Mode
36.6. Retrieving Query Results in Chunks
36.7. Canceling Queries in Progress
36.7.1. Functions for Sending Cancel Requests
36.7.2. Obsolete Functions for Sending Cancel Requests
36.8. The Fast-Path Interface
36.9. Asynchronous Notification
36.10. Functions Associated with the COPY Command
36.10.1. Functions for Sending COPY Data
36.10.2. Functions for Receiving COPY Data
36.10.3. Obsolete Functions for COPY
36.11. Control Functions
36.12. Miscellaneous Functions
36.13. Notice Processing
36.14. Event System
36.14.1. Event Types
36.14.2. Event Callback Procedure
36.14.3. Event Support Functions
36.14.4. Event Example
36.15. Environment Variables
36.16. The Password File
36.17. The Connection Service File
36.18. LDAP Lookup of Connection Parameters
36.19. SSL Support
36.19.1. Client Verification of Server Certificates
36.19.2. Client Certificates
36.19.3. Protection Provided in Different Modes
36.19.4. SSL Client File Usage
36.19.5. SSL Library Initialization
36.20. OAuth Support
36.20.1. Authdata Hooks
36.20.2. Debugging and Developer Settings
36.21. Behavior in Threaded Programs
36.22. Building libpq Programs
36.23. Example Programs

libpq is the C application programmer's interface to Postgres Pro. libpq is a set of library functions that allow client programs to pass queries to the Postgres Pro backend server and to receive the results of these queries.

libpq is also the underlying engine for several other Postgres Pro application interfaces, including those written for C++, Perl, Python, Tcl and ECPG. So some aspects of libpq's behavior will be important to you if you use one of those packages. In particular, Section 36.15, Section 36.16 and Section 36.19 describe behavior that is visible to the user of any application that uses libpq.

Some short programs are included at the end of this chapter (Section 36.23) to show how to write programs that use libpq.

Client programs that use libpq must include the header file libpq-fe.h and must link with the libpq library.

FAQ