Я использую Postgres 8.2 и связанную библиотеку libpq для ANSI C. Я просмотрел документацию и не нашел то, что дало бы мне эту конкретную информацию.Программный поиск количества строк, затронутых Postgres COPY
В разделе «COPY» документация «Выходы» описан как таковые:
При успешном завершении, команда COPY возвращает команду тег формы
счетчик копий
граф - количество скопированных строк.
Предполагая, что соед относится к действительному 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);
}
Как всегда, Ouput всегда «COPY завершено: 0 строк импортировано ", несмотря на то, что строки являются импортированы.
Я был бы признателен за любые советы