我创建了一个包含3列的表:int8、double和bytea。当查询一行数据时,我使用PQgetvalue获取一行中的每个列值。但是PQgetvalue返回一个char*,我必须将文本值转换为相应的类型,比如to或strtod等等。
是否有更有效的方法来获取实际数据,避免每次转换数据?
发布于 2022-02-24 15:02:24
将char *转换为数字没有太多开销。但是可以使用二进制模式,方法是以1作为最后一个参数调用PQexecParams。
要检索二进制数据,必须使用PQgetlength和PQgetisnull来获取数据的大小和NULLness。此外,数据将采用数据库服务器使用的二进制格式,因此,如果两台机器具有不同的硬件结构(尽管IEEE几乎在任何地方都使用),那么double的表示可能是不同的。
https://stackoverflow.com/questions/71253815
复制相似问题