Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.88 KB | None | 0 0
  1. #include <sqlca.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #include <sys/time.h>
  6. #include <unistd.h>
  7. #include <sqltypes.h>
  8.  
  9. void error_func(char *message, int code) {
  10.     printf("Error code: %d\nMessaeg: \n", code, message);
  11.     printf("Error hu2: %s\n", sqlca.sqlerrm.sqlerrmc);
  12. }
  13.  
  14. int main() {
  15.     /****************************************\
  16.     |* Объявляем переменные для работы с БД *|
  17.     \****************************************/
  18.     EXEC SQL begin declare section;
  19.     int buf;
  20.     EXEC SQL end declare section;
  21.  
  22.     /*********************\
  23.     |* Подключаемся к БД *|
  24.     \*********************/
  25.     exec sql connect to students@fpm2.ami.nstu.ru user "pmi-b6103" using "juIppOw3";
  26.  
  27.     if(sqlca.sqlcode!=0) {
  28.         printf("Authentication failed\n");
  29.         return 1;
  30.     }
  31.  
  32.     /*******************************************************\
  33.     |* Устанавливаем схему, в которой будем искать таблицу *|
  34.     \*******************************************************/
  35.     EXEC SQL set search_path to pmib6103;
  36.  
  37.     if(sqlca.sqlcode!=0) {
  38.         printf("Error\n");
  39.         return 2;
  40.     }
  41.  
  42.  
  43.     /**********************\
  44.     |* Выполнение запроса *|
  45.     \**********************/
  46.     exec sql begin work;
  47.  
  48.     exec sql SELECT COUNT(DISTINCT spj.n_post) into :buf
  49.              FROM  spj
  50.              JOIN  j ON j.n_izd = spj.n_izd
  51.              WHERE j.town IN (SELECT p.town
  52.                               FROM  p
  53.                               WHERE p.cvet = 'Красный');
  54.  
  55.     exec sql commit work;
  56.  
  57.  
  58.     if(sqlca.sqlcode != 0) {
  59.         error_func("select", sqlca.sqlcode);
  60.         exec sql rollback;
  61.     } else {
  62.         printf("Количество поставщиков: %d\n", buf);
  63.         exec sql commit;
  64.     }
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement