Разработка информационно-поисковой системы, страница 7

            column_t table7[] =

            {

                  {"ID",              CT_CONST, 30,  0, 0},

                  {"Компания",  CT_COMBO, 100, 1, 2},

                  {"Формат",    CT_TEXT,  100, 0, 0},

                  {"Цена",      CT_TEXT,  50,  0, 0}

            };

            create_table("Дисководы", ASIZE(table7), table7);

            column_t table8[] =

            {

                  {"ID",              CT_CONST, 30,  0, 0},

                  {"Компания",  CT_COMBO, 100, 1, 2},

                  {"Формат",    CT_TEXT,  100, 0, 0},

                  {"Цена",      CT_TEXT,  50,  0, 0}

            };

            create_table("CD-DVD", ASIZE(table8), table8);

            column_t table9[] =

            {

                  {"ID",               CT_CONST, 30,  0, 0},

                  {"Компания",   CT_COMBO, 100, 1, 2},

                  {"Имя",              CT_TEXT,  100, 0, 0},

                  {"Объем VRAM", CT_TEXT,  100, 0, 0},

                  {"Цена",       CT_TEXT,  50,  0, 0}

            };

            create_table("Видеокарты", ASIZE(table9), table9);

            column_t table10[] =

            {

                  {"ID",               CT_CONST, 30,  0, 0},

                  {"Компания",   CT_COMBO, 100, 1, 2},

                  {"Имя",              CT_TEXT,  100, 0, 0},

                  {"Описание",   CT_TEXT,  100, 0, 0},

                  {"Мощность БП",CT_TEXT,  100, 0, 0},

                  {"Цена",       CT_TEXT,  50,  0, 0}

            };

            create_table("Корпуса", ASIZE(table10), table10);

            column_t table11[] =

            {

                  {"ID",              CT_CONST, 30,  0, 0},

                  {"Компания",  CT_COMBO, 100, 1, 2},

                  {"Модель",    CT_TEXT,  100, 0, 0},

                  {"Описание",  CT_TEXT,  100, 0, 0},

                  {"Цена",      CT_TEXT,  50,  0, 0}

            };

            create_table("Клавиатуры", ASIZE(table11), table11);

            column_t table12[] =

            {

                  {"ID",              CT_CONST, 30,  0, 0},

                  {"Компания",  CT_COMBO, 100, 1, 2},

                  {"Модель",    CT_TEXT,  100, 0, 0},

                  {"Описание",  CT_TEXT,  100, 0, 0},

                  {"Цена",      CT_TEXT,  50,  0, 0}

            };

            create_table("Мыши", ASIZE(table12), table12);

            callback_param_t cp = {MODE_TABLES};

            res = exec_sql_cmd ("SELECT * FROM tables", &cp);

            res = exec_sql_cmd ("CREATE TABLE users"

                  "(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT,"

                  "user_group INTEGER, hash INTEGER)", NULL);

            if (res == 0)

                  if (exec_sql_cmd ("insert into users (name, user_group, hash)"

                        " values ('Admin',0,0)", NULL) ||

                      exec_sql_cmd ("insert into users (name, user_group, hash)"

                        " values ('User',1,0)", NULL))

                        return 0;  

            return 1;

      }

      else

            error_msg("DB error !");

      return 0;

}

/* завершение работы с БД */

void db_close()

{

      int res = sqlite3_close(sql_db);

}

int get_count(const char * table)

{

      int res = 0;

      char cmd[256];

      wsprintf (cmd, "SELECT count(*) FROM %s", table);

      struct callback_param_t param = {MODE_INT, &res};

      if (exec_sql_cmd (cmd, &param))

            return -1;  /* error occured */

      else

            return res; /* all OK */

}

void save_str(char *&dest, const char * src)

{

      dest = (char*)malloc(1 + strlen(src));

      strcpy(dest, src);

}