VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

PQgetlineAsync

功能描述

不阻塞地读取一行COPY数据(由服务器传输)到一个缓冲区中。

接口原型

int PQgetlineAsync(PGconn *conn,       
                   char *buffer,    
                   int bufsize);

参数说明

参数 描述
conn 建立连接时返回的连接结构体指针,该指针用于标识某个特定连接。
buffer 字符串缓冲区。
length 字符串缓冲区长度。

返回值

在每次调用时,如果libpq的输入缓冲区内有可用的一个完整的数据行, PQgetlineAsync都将返回数据。否则,在其他数据到达之前不会返回数据。 如果见到了拷贝数据结束的标志,此函数返回 -1,如果没有可用数据, 或者是给出一个正数表明返回的数据的字节数,返回 0。如果返回 -1,调用者下一步必须调用 PQendcopy,然后回到正常处理。

其他

返回的数据将不超过一行的范围。如果可能,每次将返回一个完整行。但如果调用者提供的缓冲区太小, 无法容下服务器发出的整行,那么将返回部分行。对于文本数据,这个可以通过测试返回的最后一个字节是否是 \n来确认。(在二进制COPY中,我们需要对COPY 数据格式进行实际的分析,以便做相同的判断。)返回的字符串不是空结尾的。(如果你想得到一个空结尾的字串, 确保你传递了一个比实际可用空间少一字节的bufsize。)此方法目前已废弃,但还可以使用。