ecpg
Описание
ecpg это встроенный SQL препроцессор для программ, написанных на языке C. Он преобразует программы на C, содержащие SQL-выражения, заменяя их вызовами встроенных функций. Получаемые на выходе файлы можно затем скомпилировать и скомпоновать.
ecpg преобразует каждый файл, переданный в параметрах в соответствующий файл на C. Входным файлам лучше давать расширения .pgc. В этом случае оно будет автоматически заменяться на .c. Если же расширение входного файла отличается от .pgc, то к имени просто добавится .c. Имя выходного файла можно задать в параметре -o.
Данный раздел не содержит описания встроенного SQL-языка. Для более подробной информации см. Главу 33.
Параметры
ecpg принимает в качестве аргументов:
- -c
Автоматически генерировать код, написанный на языке C, из кода SQL. Сейчас это справедливо для EXEC SQL TYPE.
- -C режим
Установить режим совместимости. режим может принимать значение INFORMIX или INFORMIX_SE.
- -D символ
Определить символ начала команд C-препроцессора.
- -i
Также разбирать и системные включения.
- -I каталог
Указать дополнительный путь включаемых файлов, используемый при выполнении EXEC SQL INCLUDE. По умолчанию используются . (текущий каталог), /usr/local/include, каталог, задаваемый при компиляции PostgreSQL (обычно — /usr/local/pgsql/include), и /usr/include, в порядке, как это перечислено.
- -o имя_файла
Указывает ecpg имя файла, в который будет осуществлен вывод.
- -r параметр
Определяет поведение времени исполнения. Флаг может принимать следующие значения:
- no_indicator
Использовать специальные символы для представления значений null. Исторически некоторые базы данных используют такой подход.
- prepare
Сформировать подготовленные выражения. libecpg сформирует кеш подготовленных выражений и будет использовать их при необходимости повторно. В случае переполнения кеша, libecpg освободит память за счёт вытеснения наименее используемых выражений.
- questionmarks
Разрешает использовать знак вопроса в качестве аргумента подстановки в целях совместимости. Ранее это было поведением по умолчанию.
- -t
Включить автоматическую фиксацию транзакций. В этом режиме каждая SQL-команда будет автоматически фиксироваться, пока не будет явно включена в блок транзакции. В режиме по умолчанию команды фиксируются лишь при явном вызове EXEC SQL COMMIT.
- -v
Вывести информацию о версии, а также путях поиска включаемых файлов.
- --version
Вывести версию ecpg.
- -?
--help Вывести справку по команде ecpg.
Замечания
При компиляции полученных файлов, компилятор должен иметь возможность найти заголовочные файлы ECPG в каталоге включений PostgreSQL. Для этого можно использовать флаг -I во время компиляции, например, -I/usr/local/pgsql/include.
Программы на C со встроенным SQL необходимо скомпоновать с библиотекой libecpg, например, используя флаг компоновщика -L/usr/local/pgsql/lib -lecpg.
Имена каталогов, подходящих для установки, можно найти в разделе pg_config.
Примеры
Если имеется исходный файл на C prog1.pgc со встроенным SQL, можно создать исполняемую программу, используя следующую последовательность команд:
ecpg prog1.pgc cc -I/usr/local/pgsql/include -c prog1.c cc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg
Пред. | Начало | След. |
dropuser | Уровень выше | pg_basebackup |