Advertisement
Guest User

Untitled

a guest
Sep 15th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.99 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <stdio.h>
  4. #include <libpg-fe.h>
  5. using namespace std;
  6. using std::string;
  7.  
  8.  
  9. void show_table(PGresult *result)
  10. {
  11. int n,r,nrows,nfields;
  12. nrows=PQntuples(result);
  13. nfields=PQfields(result);
  14. for(n=0;n<nfields;n++)
  15. {
  16. printf("%s \t|", PQfname(result,n));
  17. }
  18. printf("\n");
  19.  
  20. for(r=0;r<nrows;r++)
  21. {
  22. for(n=0;n<nfields;n++)
  23. {
  24. printf(" %s \t |", PQgetvalue(result,r,n));
  25. }
  26. printf("\n");
  27. }
  28. }
  29.  
  30. int main(int argc, char *argv[])
  31. {
  32. string od;
  33. string do;
  34. string zapytanie1;
  35. string zapytanie2;
  36. printf("Podaj date 1 w formacie rrrr-mm-dd: ");
  37. scanf("%s",&od);
  38. printf("Podaj date 2 w formacie rrrr-mm-dd: ");
  39. scanf("%s",&do);
  40. string part1, part2, part3, part4, part5;
  41. 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 '";
  42. part2="'))) and ((select extract(epoch from data_wypozyczenia))>(select extract(epoch from timestamp '";
  43. part3="'))) and data_zwrotu IS NOT NULL;";
  44. part4="'))) and data_zwrotu IS NULL;";
  45. 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 '";
  46. zapytanie1=part1+do+part2+od+part3;
  47. zapytanie2=part5+do+part2+od+part4;
  48. PGconn *dbh;
  49. PGresult *wynik1, *wynik2;
  50. dbg=PQconnectdb("dbname=postgres user=postgres password=HASLO host=localhost port=5432"); /*Tutaj daj
  51.  
  52. swoje haslo i parametry polaczenia */
  53. if (PQstatus(dbh)==CONNECTION_OK)
  54. {
  55. printf("Udane polaczenie z baza \n");
  56. //pracujemy...
  57.  
  58. wynik1=PQexec(dbh,zapytanie1.c_str())
  59. wynik2=PQexec(dbh,zapytanie2.c_str())
  60. switch(PQresultStatus(wynik1))
  61. {
  62. case PGRES_TUPLES_OK:
  63. {show_table(wynik1);break;}
  64. case PGRES_COMMAND_OK:
  65. {printf("zapytanie sie powiodlo \n"); break}
  66. case PGRES_EMPTY_QUERY:
  67. {printf("Serwer nie mial nic do roboty \n");break;}
  68. case PGRES_NONFATAL_ERROR:
  69. {printf("Blad niekrytyczny \n");break;}
  70. case PGRES_FATAL_ERROR:
  71. default:
  72. {printf("Blad krytyczny \n"); printf("%s\n", PQresultErrorMessage(wynik1);}
  73. }
  74. switch(PQresultStatus(wynik2))
  75. {
  76. case PGRES_TUPLES_OK:
  77. {show_table(wynik2);break;}
  78. case PGRES_COMMAND_OK:
  79. {printf("zapytanie sie powiodlo \n"); break}
  80. case PGRES_EMPTY_QUERY:
  81. {printf("Serwer nie mial nic do roboty \n");break;}
  82. case PGRES_NONFATAL_ERROR:
  83. {printf("Blad niekrytyczny \n");break;}
  84. case PGRES_FATAL_ERROR:
  85. default:
  86. {printf("Blad krytyczny \n"); printf("%s\n", PQresultErrorMessage(wynik2);}
  87. }
  88. PQclear(wynik1);
  89. PQclear(wynik2);
  90. PQfinish(dbh);
  91. }
  92. else printf("Blad polaczenia z baza \n");
  93. system("PAUSE");
  94. return EXIT_SUCCESS;
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement