1

在 libpqxx 参考中,我有时可以阅读仅限于底层 libpq 版本的内容(“需要 PostgreSQL 7.4 或更高版本的 libpq 版本。”),例如这里

现在问题:(1)如何获取当前程序中使用的libpq版本(使用libpqxx)?(2) 据我所知,在向新的 libpq 版本前进时,libpqxx 不一定需要重新编译。替换旧的 libpq.dll 涵盖(通常)新技术,例如我的情况下的 ssl 压缩。这就是为什么我认为应该在运行时收到 libpq 版本。

4

1 回答 1

2

从 9.1 到PQlibVersion,libpq 版本在运行时可用:

int PQlibVersion(void);

此函数的结果可用于在运行时确定当前加载的 libpq 版本中是否提供特定功能。例如,该函数可用于确定哪些连接选项可用于 PQconnectdb,或者是否支持 PostgreSQL 9.0 中添加的 hex bytea 输出。

该数字是通过将主要、次要和修订号转换为两位十进制数字并将它们附加在一起而形成的。例如,版本 9.1 将返回为 90100,版本 9.1.2 将返回为 90102(不显示前导零)。

libpqxx好像没有封装这个功能,所以我们要切开它直接进入libpq.

于 2015-04-20T13:51:28.407 回答