#include #include #include void do_exit(PGconn *conn) { PQfinish(conn); exit(1); } int main(int argc, char **argv) { /*declaration*/ const char *conninfo; printf("main() Started...\n"); /*read command line*/ if (argc > 1){ printf("main() argv[1]: %s\n", argv[1]); conninfo = argv[1]; }else{ fprintf(stderr, "Usage: %s \n", argv[0]); return 1; } /*connect to database*/ PGconn *conn = PQconnectdb(conninfo); if (PQstatus(conn) == CONNECTION_BAD) { fprintf(stderr, "Connection to database failed: %s\n", PQerrorMessage(conn)); do_exit(conn); }else if(PQstatus(conn)==CONNECTION_OK){ printf("main() connected to database\n"); }else{ printf("main() connection status NOT known\n"); } char *user = PQuser(conn); char *db_name = PQdb(conn); char *pswd = PQpass(conn); printf("User: %s\n", user); printf("Database name: %s\n", db_name); printf("Password: %s\n", pswd); /*retrive server of database using SQL statement*/ /*PGRES_TUPLS_OK is returned for a query that returns data*/ PGresult *res = PQexec(conn, "SELECT VERSION()"); if (PQresultStatus(res) != PGRES_TUPLES_OK) { printf("No data retrieved\n"); PQclear(res); do_exit(conn); } /*return a single field value of one row*/ printf("%s\n", PQgetvalue(res, 0, 0)); PQclear(res); PQfinish(conn); return 0; }