#include #include #include void do_exit(PGconn *conn, PGresult *res) { fprintf(stderr, "%s\n", PQerrorMessage(conn)); /*every statement result should be freed*/ PQclear(res); /*close connection and free memory*/ PQfinish(conn); exit(EXIT_FAILURE); } 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)); PQfinish(conn); exit(1); }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); /*submit SQL statement to the server and wait for the result*/ PGresult *res = PQexec(conn, "DROP TABLE IF EXISTS cars_cleanup"); if (PQresultStatus(res) != PGRES_COMMAND_OK) { do_exit(conn, res); }else{ printf("main() database table cleaned\n"); } /*every statement result should be freed*/ PQclear(res); res = PQexec(conn, "CREATE TABLE cars_cleanup(Id INTEGER PRIMARY KEY, Name VARCHAR(20), Price INT)"); if (PQresultStatus(res) != PGRES_COMMAND_OK) { do_exit(conn, res); }else{ printf("main() database table created\n"); } /*every statement result should be freed*/ PQclear(res); res = PQexec(conn, "INSERT INTO cars_cleanup VALUES(1,'Audi',52642)"); if (PQresultStatus(res) != PGRES_COMMAND_OK){ do_exit(conn, res); }else{ printf("main() record inserted into database table\n"); } /*every statement result should be freed*/ PQclear(res); res = PQexec(conn, "INSERT INTO cars_cleanup VALUES(2,'Mercedes',57127)"); if (PQresultStatus(res) != PGRES_COMMAND_OK) { do_exit(conn, res); }else{ printf("main() record inserted into database table\n"); } /*every statement result should be freed*/ PQclear(res); PQfinish(conn); return 0; }