33.11. 库函数

libecpg库主要包含"隐藏的"函数, 它用于实现嵌入SQL命令表达的功能。但是有一些可以直接调用的函数。 注意这使得您的代码可移植。

  • 如果调用第一个非零参数,ECPGdebug(inton, FILE *stream)打开调试日志。 调试日志在_stream_上执行。 日志包含带有插入的所有输入变量的SQL语句,以及 来自PostgreSQL服务器的结果。 当搜索SQL语句中的错误时,这是非常有用的。

    > Note: 在Windows上,如果ecpg库和应用程序是以不同标识被编译,那么 该函数调用将崩溃,因为FILE指针内部表示形式不同。 特别是,多线程/单线程,释放/调试,以及静态/动态信号 对于该库以及使用该库的所有应用程序是一样的。

  • ECPGget_PGconn(const char *connection_name)返回由给定名称标识的数据库连接句柄。 如果_connection_name_设置为NULL, 则返回当前连接句柄。如果没有连接句柄可以被识别, 则该函数返回NULL。如果必要的话,返回的连接句柄可以用于 从libpq调用任何其他函数。

    > Note: 操作随着libpq例程由ecpg直接组成的数据库连接句柄是个坏主意。

  • ECPGtransactionStatus(const char *connection_name) 返回通过_connection_name_标识的给定连接的当前事务状态。 参阅Section 31.2和libpq的PQtransactionStatus()获取关于返回状态码的详细信息。

  • 如果你连接到一个数据库,则ECPGstatus(intlineno, const char*connection_name)返回真,否则返回假。 如果正在使用一个连接,则_connection_name_NULL