Как получить список колонок таблицы и их типов?

319
31 марта 2018, 16:58

Как получить список колонок и типы колонок в базе SQLite? А потом динамически добавить название колонки в Label + добавить LineEdit или Spin Box в зависимости от типа колонки, если тип колонки Text - LineEdit , если тип integer - Spin Box. Qt C++

 QHBoxLayout* Layout = new QHBoxLayout;
 Layout->setSizeConstraint(QLayout::SetMaximumSize);
 QSqlQuery* queryTow = new QSqlQuery(conn.mydb);
 QString sqlQueryTow = QString("SELECT column_name,column_type FROM table_name=%1").arg(query->value(0).toString());
 queryTow->prepare(sqlQueryTow);
 queryTow->exec();
     while (queryTow->next()) {                
         QLabel *Label = new QLabel(this);                
         QString columnName = queryTow->value(0).toString();
         Label->setText(columnName);
         Layout->addWidget(Label);
         QString columnType = queryTow->value(1).toString();
         if(columnType="TEXT") {
            QLineEdit *LineEdit = new QLineEdit();
            Layout->addWidget(LineEdit);
         } else if (columnType="INTEGER") {
            QSpinBox *SpinBox = new QSpinBox(this);
            Layout->addWidget(SpinBox);
         }
     }

Динамически добавляя Label, LineEdit и SpinBox , как назвать их уникально ?

Answer 1

Получить информацию по конкретной таблице можно с помощью запроса ко внутренней таблице sqlite_master -

select * from sqlite_master where name='Имя_Таблицы';

Руками, работая в стандартной оболочке - команда .schema выведет информацию о таблицах - обо всех, если без параметров, или о конкретной при запросе

.schema Имя_Таблицы

Кстати, вот тут статья о внутренних таблицах SQLite.

READ ALSO
Решить матричное уравнение C++

Решить матричное уравнение C++

Есть матрица A[NxN] Есть матрица B[MxM]

284
Массив шаблонов

Массив шаблонов

Всем привет!

257
Парсер XML для создания игр

Парсер XML для создания игр

Я хочу сделать игру, ее уровни будут хранится в формате XML точнее говоря там будет для каждого тайла прописан тег и как ни странно файлы будут...

246
Не может считывать из файла символ ; C++

Не может считывать из файла символ ; C++

Например, в файле есть текст ;s

235