Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <libpq-fe.h>
- // program dla danego zapytania SQL printuje je w postaci JSON na ekran
- // przyklad uzycia:
- // ./zadanie "select * from kurs1.kurs;"
- // funkcja drukujaca na ekran rezultat polecania w formie JSON
- void printJSON(PGresult *result) {
- int row, field;
- int nrows = PQntuples(result);
- int nfields = PQnfields(result);
- printf("[");
- for(row = 0; row < nrows; ++row) {
- printf("{");
- for(field = 0; field < nfields; field++) {
- printf("\"%s\":\"%s\"", PQfname(result, field), PQgetvalue(result, row, field), PQgetlength(result, row, field));
- if (field != nfields -1)
- printf(", ");
- }
- printf(row != nrows - 1 ? "},\n" : "}");
- }
- printf("]\n");
- return;
- }
- void doSQL(PGconn *conn, char *command){
- PGresult *result;
- printf("------------------------------\n");
- printf("%s\n", command);
- result = PQexec(conn, command);
- printf("status is : %s\n", PQresStatus(PQresultStatus(result)));
- printf("#rows affected: %s\n", PQcmdTuples(result));
- printf("JSON: %s\n", PQresultErrorMessage(result));
- if (PQresultStatus(result) == PGRES_TUPLES_OK)
- printJSON(result);
- PQclear(result);
- }
- int main(int argc, char * argv[] ){
- PGresult *result;
- PGconn *conn;
- const char *connection_str = "host=localhost port=5432 dbname=u6podsiadlo user=u6podsiadlo password=6podsiadlo";
- conn = PQconnectdb(connection_str);
- if (PQstatus(conn) == CONNECTION_BAD) {
- fprintf(stderr, "Connection to %s failed, %s", connection_str, PQerrorMessage(conn));
- }
- else {
- printf("Connected OK\n");
- doSQL(conn, argv[1]);
- }
- PQfinish(conn);
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement