在 libpqxx 参考中,我有时可以阅读仅限于底层 libpq 版本的内容(“需要 PostgreSQL 7.4 或更高版本的 libpq 版本。”),例如这里。
现在问题:(1)如何获取当前程序中使用的libpq版本(使用libpqxx)?(2) 据我所知,在向新的 libpq 版本前进时,libpqxx 不一定需要重新编译。替换旧的 libpq.dll 涵盖(通常)新技术,例如我的情况下的 ssl 压缩。这就是为什么我认为应该在运行时收到 libpq 版本。
在 libpqxx 参考中,我有时可以阅读仅限于底层 libpq 版本的内容(“需要 PostgreSQL 7.4 或更高版本的 libpq 版本。”),例如这里。
现在问题:(1)如何获取当前程序中使用的libpq版本(使用libpqxx)?(2) 据我所知,在向新的 libpq 版本前进时,libpqxx 不一定需要重新编译。替换旧的 libpq.dll 涵盖(通常)新技术,例如我的情况下的 ssl 压缩。这就是为什么我认为应该在运行时收到 libpq 版本。
从 9.1 到PQlibVersion,libpq 版本在运行时可用:
int PQlibVersion(void);
此函数的结果可用于在运行时确定当前加载的 libpq 版本中是否提供特定功能。例如,该函数可用于确定哪些连接选项可用于 PQconnectdb,或者是否支持 PostgreSQL 9.0 中添加的 hex bytea 输出。
该数字是通过将主要、次要和修订号转换为两位十进制数字并将它们附加在一起而形成的。例如,版本 9.1 将返回为 90100,版本 9.1.2 将返回为 90102(不显示前导零)。
libpqxx
好像没有封装这个功能,所以我们要切开它直接进入libpq
.