获取libpq运行时版本(来自libpqxx)

时间:2015-04-20 11:44:39

标签: postgresql libpq libpqxx

在libpqxx参考中,我有时可以阅读仅限于底层libpq版本的内容("需要PostgreSQL 7.4或更高版本的libpq版本。") like here

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

1 个答案:

答案 0 :(得分:2)

从9.1到PQlibVersion

,libpq版本在运行时可用
  

int PQlibVersion(void);

     

此功能的结果可用于在运行时确定    时间,如果当前有特定功能    加载版本的libpq。例如,该功能可用于    确定哪些连接选项可用于PQconnectdb或    如果支持在PostgreSQL 9.0中添加的十六进制bytea输出。

     

通过转换主要版本,次要版本和修订版本来形成数字    将数字分成两位十进制数字并将它们相加在一起。    例如,版本9.1将返回90100和版本    9.1.2将返回为90102(未显示前导零)。

libpqxx似乎没有封装此功能,因此我们必须通过它直接转到libpq