daily pastebin goal
4%
SHARE
TWEET

Untitled

a guest Dec 7th, 2017 41 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <iostream>
  3. #include "D:\Root_D\Учеба\SQLite\Work\sqlite3.h"
  4. #include <vector>
  5. using namespace std;
  6.  
  7. void main(void)
  8. {
  9.     sqlite3 *db;
  10.     sqlite3_stmt * pStmt;
  11.     int i, j, coln, rc;
  12.     int b = 1;
  13.     //char *sql[] = {"SELECT * FROM log_list;"};
  14.     char *sql[] = {"SELECT number AS 'Number',login AS 'Login',password AS 'Pasword',rights AS 'Rights' FROM log_list;"};  
  15.  
  16.     rc = sqlite3_open16(L"D:\\Root_D\\Учеба\\SQLite\\Work\\BD.bd", &db);
  17.     if( rc )
  18.         {
  19.             fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
  20.             sqlite3_close(db);
  21.         }
  22.     for (i=0; i<sizeof(sql)/sizeof(sql[0]); i++)
  23.     {
  24.         // шаг 1 подготовка SQL инструкции к выполнению
  25.         //(компиляция ее в байт-код)
  26.         if (sqlite3_prepare(db, sql[i], -1, &pStmt, NULL))
  27.         {
  28.             printf("Error: %s\n", sqlite3_errmsg(db));
  29.             sqlite3_finalize(pStmt);
  30.             sqlite3_close(db);
  31.             system("pause");
  32.             exit(1);
  33.         }
  34.         // получения количества столбцов
  35.         coln = sqlite3_column_count(pStmt);
  36.         // печать названий столбцов только 1 раз
  37.         if (b & coln)
  38.         {
  39.             for(j=0; j<coln; j++)
  40.         printf("%s\t", sqlite3_column_name(pStmt, j));
  41.             printf("\n");
  42.             b = 0;
  43.         }
  44.         // шаг 2 выполнение SQL инструкций
  45.         while((rc = sqlite3_step(pStmt)) == SQLITE_ROW)
  46.         {
  47.             // тело цилка выполнится только для
  48.             //инструкции SELECT
  49.             // для остальных запросов функция
  50.             //sqlite3_step вернет SQLITE_DONE
  51.             // получить число столбцов в текущей строке
  52.             //результата
  53.             coln = sqlite3_data_count(pStmt);
  54.             // шаг 3 получение данных
  55.             for(j=0; j<coln; j++)
  56.             // получение данных как текстовые строки
  57.             // вне зависимости от объявленного типа
  58.             // столбца
  59.             printf("%s\t",sqlite3_column_text(pStmt, j));
  60.             //printf("%s\t",sqlite3_column_type(pStmt, j));
  61.             printf("\n");
  62.         }
  63.         // получение сообщения при ошибке
  64.         if (rc != SQLITE_DONE)  printf("Error: %s\n",
  65.                 sqlite3_errmsg16(db));
  66.         // шаг 4 завершение выполнения запроса
  67.         sqlite3_finalize(pStmt);
  68.     }
  69.     // закрытие БД
  70.     sqlite3_close(db);
  71.     system("pause");
  72.  
  73.     fflush(stdin); getchar();
  74. }
RAW Paste Data
Top