33.11. Библиотечные функции#
33.11. Библиотечные функции
Библиотека libecpg
в основном содержит
“скрытые” функции, которые используются для реализации
функциональности, выраженной встроенными SQL-командами. Но есть
несколько функций, которые могут быть полезно вызывать напрямую. Обратите внимание, что
это делает ваш код непереносимым.
ECPGdebug(int
включает режим отладки, если вызывается с ненулевым первым аргументом. Отладочные сообщения записываются вon
, FILE *stream
)stream
. Журнал содержит все SQL-запросы с вставленными в них значениями входных переменных и результаты, полученные от сервера Tantor BE. Это может быть очень полезно при поиске ошибок в ваших SQL-запросах.Примечание
На Windows, если библиотеки ecpg и приложение скомпилированы с разными флагами, вызов этой функции приведет к сбою приложения, поскольку внутреннее представление указателей
FILE
будет отличаться. Конкретно, многопоточный/однопоточный, режим отладки/релиза и статический/динамический флаги должны быть одинаковыми для библиотеки и всех приложений, использующих эту библиотеку.ECPGget_PGconn(const char *
возвращает дескриптор подключения к базе данных библиотеки, идентифицированный по заданному имени. Еслиconnection_name
)connection_name
установлено вNULL
, возвращается текущий дескриптор подключения. Если не удается идентифицировать дескриптор подключения, функция возвращаетNULL
. Возвращенный дескриптор подключения может быть использован для вызова любых других функций из libpq, при необходимости.Примечание
Это плохая идея напрямую манипулировать дескрипторами соединения с базой данных, созданными из ecpg, с помощью функций libpq.
ECPGtransactionStatus(const char *
возвращает текущий статус транзакции для указанного соединения, идентифицированного параметромconnection_name
)connection_name
. См. Раздел 31.2 иPQtransactionStatus
в документации libpq для получения подробной информации о возвращаемых кодах статуса.ECPGstatus(int
возвращает true, если вы подключены к базе данных, и false, если нет.lineno
, const char*connection_name
)connection_name
может бытьNULL
, если используется одно соединение.