parent
266a9f8937
commit
731a8ab59d
@ -0,0 +1,65 @@ |
||||
#include <stdio.h> |
||||
#include <stdlib.h> |
||||
#include <libpq-fe.h> |
||||
|
||||
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{ |
||||
printf("call ./main <connection info>\n"); |
||||
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 * FROM cars_cleanup"); |
||||
if (PQresultStatus(res) != PGRES_TUPLES_OK) { |
||||
printf("No data retrieved\n"); |
||||
PQclear(res); |
||||
do_exit(conn); |
||||
} |
||||
|
||||
/*return the number of rows in the query result*/ |
||||
int rows = PQntuples(res); |
||||
|
||||
for(int i=0; i<rows; i++){ |
||||
printf("%s %s %s\n", PQgetvalue(res,i,0), |
||||
PQgetvalue(res,i,1), PQgetvalue(res,i,2)); |
||||
} |
||||
PQclear(res); |
||||
|
||||
PQfinish(conn); |
||||
return 0; |
||||
} |
@ -0,0 +1,24 @@ |
||||
# Docu
|
||||
#
|
||||
#$@ is the name of the file to be made
|
||||
#$? is the names of the changed dependents
|
||||
#$< the name of the related file that caused the action
|
||||
#$* the prefix shared by target and dependent files
|
||||
#
|
||||
# Others
|
||||
RM = /bin/rm -f
|
||||
#
|
||||
# Source, Executable, Includes, Library Defines
|
||||
EXE = main
|
||||
#
|
||||
# Compiler, Linker Defines
|
||||
CC = /usr/bin/gcc
|
||||
#
|
||||
all: main.o |
||||
$(CC) main.c -I/usr/include/postgresql -L/usr/lib/x86_64-linux-gnu -lpq -std=c99 -Wall -o $(EXE)
|
||||
#
|
||||
main.o: |
||||
$(CC) -c main.c -I/usr/include/postgresql
|
||||
# Clean Up Objects, Exectuables, Dumps out of source directory
|
||||
clean: |
||||
$(RM) *.o $(EXE) *~
|
@ -0,0 +1,23 @@ |
||||
* build |
||||
|
||||
``` |
||||
make |
||||
``` |
||||
|
||||
* run |
||||
|
||||
``` |
||||
./main 'postgresql://begerad:secret@localhost:5432/sib00_vbn_gtfs' |
||||
``` |
||||
|
||||
* or run |
||||
|
||||
``` |
||||
./main 'postgresql://begerad:secret@localhost:5432/vbn_data' |
||||
``` |
||||
|
||||
* or run |
||||
|
||||
``` |
||||
./main "host=localhost port=5432 user=begerad password=<secret> dbname=vbn_data" |
||||
``` |
Loading…
Reference in new issue