Guest User

Untitled

a guest
Nov 5th, 2022
83
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.77 KB | None | 1 0
  1. class Database {
  2.     sqlite3* db = 0; // хэндл объекта соединение к БД
  3.     char* err = 0;
  4.     const char* unused;//хрень нужная для работы функции
  5.     string sqls;
  6.     const char* SQL;
  7.    
  8. public:
  9.  
  10.     void create_table(string table_name) {
  11.         sqls = "CREATE TABLE IF NOT EXISTS " + table_name + " (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name TEXT NOT NULL, activity INTEGER NOT NULL, task TEXT NOT NULL);INSERT INTO "+ table_name +" (name, activity,task) VALUES('Toha', 0,'cfghjk'); INSERT INTO " + table_name + " (name, activity,task) VALUES('Miha', 1,'jkhgf'); ";
  12.         SQL = sqls.c_str();
  13.         // открываем соединение
  14.         int rc = sqlite3_open("test3.db", &db);
  15.         if (rc) cout<< "Can't open/create datase "<< sqlite3_errmsg(db);
  16.         // выполняем SQL
  17.         else if (sqlite3_exec(db, SQL, 0, 0, &err))
  18.         {
  19.             cout << "Wrong SQL-query: " << err;
  20.             sqlite3_free(err);
  21.         }
  22.        
  23.     }
  24.    
  25.     //callback внутри класса не фурычит,че далеть
  26.     int callback(void* unused, int argc, char** argv, char** azColName) {
  27.         int i;
  28.         //fprintf(stderr, "%s: ", (const char*)data);
  29.  
  30.         for (i = 0; i < argc; i++) {
  31.             printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
  32.             //cout << azColName[i] << " = " << argv[i] <<'\n';
  33.             //cout << endl;
  34.         }
  35.         printf("\n");
  36.         return 0;
  37.     }
  38.     void show(string table_name) {
  39.          
  40.         int callback(void*, int, char**, char**);
  41.         sqls = "SELECT * FROM " + table_name;
  42.         SQL = sqls.c_str();
  43.         int rc = sqlite3_exec(db, SQL, callback, (void*)unused, &err);
  44.  
  45.         if (rc != SQLITE_OK) {
  46.             fprintf(stderr, "SQL error: %s\n", err);
  47.             sqlite3_free(err);
  48.         }
  49.         else {
  50.             fprintf(stdout, "Operation done successfully\n");
  51.         }
  52.     }
  53.     void close() {
  54.         sqlite3_close(db);
  55.     }
  56. };
  57.  
Advertisement
Add Comment
Please, Sign In to add comment