Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <iostream>
- #include <stdio.h>
- #include <libpg-fe.h>
- using namespace std;
- using std::string;
- void show_table(PGresult *result)
- {
- int n,r,nrows,nfields;
- nrows=PQntuples(result);
- nfields=PQfields(result);
- for(n=0;n<nfields;n++)
- {
- printf("%s \t|", PQfname(result,n));
- }
- printf("\n");
- for(r=0;r<nrows;r++)
- {
- for(n=0;n<nfields;n++)
- {
- printf(" %s \t |", PQgetvalue(result,r,n));
- }
- printf("\n");
- }
- }
- int main(int argc, char *argv[])
- {
- string od;
- string do;
- string zapytanie1;
- string zapytanie2;
- printf("Podaj date 1 w formacie rrrr-mm-dd: ");
- scanf("%s",&od);
- printf("Podaj date 2 w formacie rrrr-mm-dd: ");
- scanf("%s",&do);
- string part1, part2, part3, part4, part5;
- part1="SELECT count(data_wypozyczenia) as zwrocone FROM klient, plyta, gatunek, wypozyczenie WHERE klient.id_klienta = kto_wypozyczyl AND plyta.numer = co_wypozyczyl AND gatunek.id_gatunku = plyta.gatunek and ((select extract(epoch from data_wypozyczenia))<(select extract(epoch from timestamp '";
- part2="'))) and ((select extract(epoch from data_wypozyczenia))>(select extract(epoch from timestamp '";
- part3="'))) and data_zwrotu IS NOT NULL;";
- part4="'))) and data_zwrotu IS NULL;";
- part5="SELECT count(data_wypozyczenia) as nie_zwrocone FROM klient, plyta, gatunek, wypozyczenie WHERE klient.id_klienta = kto_wypozyczyl AND plyta.numer = co_wypozyczyl AND gatunek.id_gatunku = plyta.gatunek and ((select extract(epoch from data_wypozyczenia))<(select extract(epoch from timestamp '";
- zapytanie1=part1+do+part2+od+part3;
- zapytanie2=part5+do+part2+od+part4;
- PGconn *dbh;
- PGresult *wynik1, *wynik2;
- dbg=PQconnectdb("dbname=postgres user=postgres password=HASLO host=localhost port=5432"); /*Tutaj daj
- swoje haslo i parametry polaczenia */
- if (PQstatus(dbh)==CONNECTION_OK)
- {
- printf("Udane polaczenie z baza \n");
- //pracujemy...
- wynik1=PQexec(dbh,zapytanie1.c_str())
- wynik2=PQexec(dbh,zapytanie2.c_str())
- switch(PQresultStatus(wynik1))
- {
- case PGRES_TUPLES_OK:
- {show_table(wynik1);break;}
- case PGRES_COMMAND_OK:
- {printf("zapytanie sie powiodlo \n"); break}
- case PGRES_EMPTY_QUERY:
- {printf("Serwer nie mial nic do roboty \n");break;}
- case PGRES_NONFATAL_ERROR:
- {printf("Blad niekrytyczny \n");break;}
- case PGRES_FATAL_ERROR:
- default:
- {printf("Blad krytyczny \n"); printf("%s\n", PQresultErrorMessage(wynik1);}
- }
- switch(PQresultStatus(wynik2))
- {
- case PGRES_TUPLES_OK:
- {show_table(wynik2);break;}
- case PGRES_COMMAND_OK:
- {printf("zapytanie sie powiodlo \n"); break}
- case PGRES_EMPTY_QUERY:
- {printf("Serwer nie mial nic do roboty \n");break;}
- case PGRES_NONFATAL_ERROR:
- {printf("Blad niekrytyczny \n");break;}
- case PGRES_FATAL_ERROR:
- default:
- {printf("Blad krytyczny \n"); printf("%s\n", PQresultErrorMessage(wynik2);}
- }
- PQclear(wynik1);
- PQclear(wynik2);
- PQfinish(dbh);
- }
- else printf("Blad polaczenia z baza \n");
- system("PAUSE");
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement