Как я могу создать таблицу SQLlite и вставить в нее данные в QT во время компиляции? - PullRequest
0 голосов
/ 01 августа 2020

Я работаю над программой QT, в которой мне нужно создать две таблицы SQLite и вставить данные в одну из них. У меня есть функция void под названием configuraBaseDatos , которая делает это во время выполнения. Как я могу получить его во время компиляции?

Вот что я пробовал:

void configuraBaseDatos()
{
    QSqlQuery q;
    q.exec("CREATE TABLE IF NOT EXISTS vendedor(id INTEGER PRIMARY KEY NOT NULL,"
           "nombre TEXT NOT NULL UNIQUE, clave TEXT NOT NULL, isAdmin TEXT NOT NULL)");

    q.exec("INSERT INTO vendedor (id, nombre, clave,isAdmin) VALUES (1,'admin', '123456', 'Administrador')");

    q.exec("CREATE TABLE IF NOT EXISTS producto(id INTEGER PRIMARY KEY NOT NULL,"
           "nombre TEXT NOT NULL, marca TEXT NOT NULL , precio DOUBLE NOT NULL, cantidad INT NOT NULL)");
}

Я также пытался использовать constexpr , но QSqlQuery не является буквальным типом. Я думаю, что шаблоны могут быть решением, но я не могу понять, как я могу его использовать.

1 Ответ

2 голосов
/ 01 августа 2020

Чтобы такая внешняя работа выполнялась во время компиляции, вам нужно будет использовать (или создать, если он не существует) инструмент, который можно запустить как часть вашего процесса сборки.

Я не использую sqlite но меня не удивит, если существуют инструменты для запуска файлов сценариев. На этом этапе нужно будет создать сценарий с данными, которые вы хотите сохранить в своей таблице, и запустить сценарий. Такой файл сценария может также отвечать за заполнение схемы БД, после чего БД просто включается во все, что распространяется с вашей программой, а не создается при первом запуске.

...