# 36.11.图书馆职能

这个libecpg库主要包含“隐藏”函数,用于实现嵌入式SQL命令所表示的功能。但是有些函数可以直接调用。请注意,这会使代码不可移植。

  • ECPGdebug(int)*在…上*,存档**流动*)如果使用第一个参数非零调用,则打开调试日志记录。调试日志记录是在*流动*。日志包含插入了所有输入变量的所有SQL语句,以及来自PostgreSQL server的结果。这在搜索SQL语句中的错误时非常有用。

    # 笔记

    在Windows上,如果ecpg库和应用程序使用不同的标志编译,此函数调用将使应用程序崩溃,因为文件指针不同。具体来说,对于库和使用该库的所有应用程序,多线程/单线程、发布/调试和静态/动态标志应该相同。

  • ECPGget_PGconn(常量字符**连接名称*)返回由给定名称标识的库数据库连接句柄。如果*连接名称*即将无效的,则返回当前连接句柄。如果无法识别连接句柄,则函数返回无效的。如有必要,返回的连接句柄可用于从libpq调用任何其他函数。

    # 笔记

    用libpq例程直接操作由ecpg生成的数据库连接句柄是个坏主意。

  • ECPGtransactionStatus(常量字符**连接名称*)返回由标识的给定连接的当前事务状态*连接名称*看见第34.2节还有libpq的交易状态有关返回的状态代码的详细信息。

  • ECPGstatus(int)*莱恩诺*,const char**连接名称*)如果连接到数据库,则返回true,否则返回false。*连接名称*可以是无效的如果正在使用单个连接。