37.11. Библиотечные функции
Библиотека libecpg
в основном содержит «скрытые» функции, применяемые для реализации функциональности, выражаемой встраиваемыми командами SQL. Но есть также некоторые функции, которые можно вызывать напрямую. Заметьте, что код, задействующий эти функции, будет непереносимым.
ECPGdebug(int
с первым аргументом, отличным от нуля, включает вывод отладочных сообщений в заданныйвкл
, FILE *поток
)поток
. Журнал сообщений, полученный таким образом, будет содержать все операторы SQL с заданными входными переменными и результаты, выданные сервером Postgres Pro. Это может быть очень полезно для поиска ошибок в командах SQL.Примечание
В Windows, если библиотека ecpg и приложение скомпилированы с разными флагами, эта функция может вызвать крах приложения из-за различий внутреннего представления указателей
FILE
. В частности, флаги многопоточной/однопоточной, выпускаемой/отладочной или статической/динамической сборки должны быть одинаковыми для библиотеки и всех использующих её приложений.ECPGget_PGconn(const char *
возвращает указатель на подключение к базе данных, имеющее заданное имя. Если аргументимя_подключения
)имя_подключения
равенNULL
, возвращается указатель на текущее подключение. Если определить подключение не удаётся, возвращаетсяNULL
. Полученный указатель на подключение, если требуется, можно использовать при вызове любых других функций libpq.Примечание
Манипулировать подключениями, открытыми средствами ecpg, напрямую через libpq не следует.
ECPGtransactionStatus(const char *
возвращает состояние текущей транзакции для подключения, на которое указываетимя_подключения
)имя_подключения
. Возвращаемые коды состояния перечислены в описании входящей в libpq функцииPQtransactionStatus()
в Разделе 35.2.ECPGstatus(int
возвращает true при наличии подключения к базе данных и false в противном случае. В аргументеномер_строки
, const char*имя_подключения
)имя_подключения
можно передатьNULL
, если применяется одно подключение.