【发布时间】:2010-10-08 16:56:00
【问题描述】:
我正在使用 Postgres 8.2 和用于 ANSI C 的相关 libpq 库。我浏览了文档,但没有找到可以提供特定信息的内容。
在文档的“复制”部分,“输出”是这样描述的:
成功完成后,COPY 命令返回格式为
的命令标记 复制计数
计数是复制的行数。
假设 conn 指的是一个有效的 PGconn*, 我认为我可以使用这样的东西来返回复制的行数:
sprintf(queryString, "COPY table FROM '%s' WITH DELIMITER '|'",
tempFileName);
fprintf(stderr, "COPY all records: %s\n", queryString);
res = PQexec(conn, queryString);
bResultErr = (PQresultStatus(res) != PGRES_COMMAND_OK);
if (bResultErr) {
PQclear(res);
fprintf(stderr, "Aborting:DELETE failed: %s\n",
PQerrorMessage(conn));
PQfinish (conn);
exit (1);
} else {
// Display how many records were COPY'd
fprintf(stderr, "COPY completed: %d rows imported\n",
PQntuples(res));
PQclear(res);
}
然而,输出总是“复制完成:0 行导入”,尽管行 已导入。
如果有任何提示,我将不胜感激
【问题讨论】:
标签: c postgresql