PostgreSQL 9.4.4 中文手册
上一页 | 上一级 | 章 33. ECPG - 在C中嵌入SQL | 下一页

# 33.11. 库函数

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

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

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

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

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

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

- 如果你连接到一个数据库，则`ECPGstatus(int `lineno`, const char* `connection_name`)`返回真，否则返回假。 如果正在使用一个连接，则`connection_name`是`NULL`。

上一页 | 起始页 | 下一页
处理嵌入的SQL程序 | 上一级 | 大对象