Qt Sqlite создает только одну таблицу из скрипта - PullRequest
2 голосов
/ 12 декабря 2010

У меня есть следующий скрипт, который я использую в QString в qt и предоставляю QSqlQuery для создания таблиц в базе данных Sqlite.

The Script.

CREATE TABLE accounts
(
   A_Id           INTEGER PRIMARY KEY,
   Account_Name   TEXT,
   Account_Date   TEXT
);

CREATE TABLE statements
(
   S_Id           INTEGER PRIMARY KEY,
   Statement_Name TEXT
);

CREATE TABLE transactions
(
   T_Id              INTEGER PRIMARY KEY,
   A_Id              INTEGER,
   S_Id              INTEGER,
   Amount            REAL,
   Transaction_Date  TEXT,
   FOREIGN KEY(A_Id) REFERENCES accounts(A_Id),
   FOREIGN KEY(S_Id) REFERENCES statements(S_Id)
);

Однако, когдаСценарии выполняются только при создании первой таблицы в базе данных.

Спасибо за любую помощь.

Ответы [ 2 ]

3 голосов
/ 12 декабря 2010

QSqlQuery перенаправляет оператор в драйвер SQlite, где строки запроса анализируются с помощью sqlite3_prepare (...).Документация гласит, что «эти процедуры компилируют только первый оператор в zSql».Вывод: это «особенность» SQLite.

1 голос
/ 19 декабря 2010

Может быть, это поможет вам:

db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("your_nameDB.db");
QSqlQuery query(db);
query.exec("CREATE TABLE Accounts"
           "(A_Id INTEGER PRIMARY KEY, Account_Name TEXT,Account_Date TEXT)");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...