多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 33.11\. 库函数 `libecpg`库主要包含"隐藏的"函数, 它用于实现嵌入SQL命令表达的功能。但是有一些可以直接调用的函数。 注意这使得您的代码可移植。 * 如果调用第一个非零参数,`ECPGdebug(int `_on_`, 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](#calibre_link-497)和libpq的`PQtransactionStatus()`获取关于返回状态码的详细信息。 * 如果你连接到一个数据库,则`ECPGstatus(int `_lineno_`, const char* `_connection_name_`)`返回真,否则返回假。 如果正在使用一个连接,则`_connection_name_`是`NULL`。