在libpqxx参考中,我有时可以阅读仅限于底层libpq版本的内容("需要PostgreSQL 7.4或更高版本的libpq版本。") like here
现在的问题:(1)如何获取当前程序中使用的libpq版本(使用libpqxx)? (2)据我所知,libpqxx不一定需要在转发到新的libpq版本时重新编译。替换旧的libpq.dll(通常)涵盖了新技术,例如我的情况下的ssl压缩。这就是为什么我认为libpq版本应该在运行时接收。
答案 0 :(得分:2)
从9.1到PQlibVersion:
,libpq版本在运行时可用int PQlibVersion(void);
此功能的结果可用于在运行时确定 时间,如果当前有特定功能 加载版本的libpq。例如,该功能可用于 确定哪些连接选项可用于PQconnectdb或 如果支持在PostgreSQL 9.0中添加的十六进制bytea输出。
通过转换主要版本,次要版本和修订版本来形成数字 将数字分成两位十进制数字并将它们相加在一起。 例如,版本9.1将返回90100和版本 9.1.2将返回为90102(未显示前导零)。
libpqxx
似乎没有封装此功能,因此我们必须通过它直接转到libpq
。