#include #include static void run_query(PGconn *conn, const char *command) { int rc; PGresult *res; int count = 0; fprintf(stderr, "command = %s\n", command); rc = PQsendQuery(conn, command); if (rc != 1) { char *error = PQerrorMessage(conn); fprintf(stderr, "PQsendQuery() error: %s", error); return; } while ((res = PQgetResult(conn))) { ExecStatusType status; status = PQresultStatus(res); fprintf(stderr, "result %d status = %s\n", ++count, PQresStatus(status)); fprintf(stderr, "error message = \"%s\"\n", PQresultErrorMessage(res)); PQclear(res); } fprintf(stderr, "\n"); return; } int main() { PGconn *conn; conn = PQconnectdb(""); if (PQstatus(conn) != CONNECTION_OK) { fprintf(stderr, "Connection to database failed: %s\n", PQerrorMessage(conn)); return 1; } run_query(conn, "SELECT 'before';"); run_query(conn, "SELECT pg_terminate_backend(pg_backend_pid());"); run_query(conn, "SELECT 'after';"); PQfinish(conn); return 0; }