21#include <QtTest/QTest>
22#include <QtTest/QSignalSpy>
23#include <QSqlDatabase>
24#include <QTemporaryFile>
26void SqlDatabaseTest::initTestCase()
30void SqlDatabaseTest::cleanupTestCase()
40void SqlDatabaseTest::sqlQueryJobTest()
45 QSqlDatabase db = QSqlDatabase::addDatabase(
QSL(
"QSQLITE"));
46 db.setDatabaseName(file.fileName());
51 QCOMPARE(db.tables().count(), 0);
54 job->
setQuery(
QSL(
"CREATE TABLE test1 (data TEXT, id INTEGER PRIMARY KEY)"));
56 QVERIFY(waitForFinished(job));
57 QVERIFY(!job->
error().isValid());
59 QCOMPARE(db.tables(), QStringList{QSL(
"test1")});
62 job->
setQuery(
QSL(
"INSERT INTO test1 (data) VALUES (?)"));
65 QVERIFY(waitForFinished(job));
66 QVERIFY(!job->
error().isValid());
69 QSqlQuery query(
QSL(
"SELECT data FROM test1"), db);
71 QCOMPARE(query.value(0).toString(),
QSL(
"test-value"));
72 QVERIFY(!query.next());
77 QVERIFY(waitForFinished(job));
78 QVERIFY(!job->
error().isValid());
80 QCOMPARE(job->
records().size(), 1);
81 QCOMPARE(job->
records().at(0).value(0).toString(),
QSL(
"test-value"));
84 job->
setQuery(
QSL(
"SELECT invalid sql syntax; 1321sdsa from"));
86 QVERIFY(waitForFinished(job));
87 QVERIFY(job->
error().isValid());
static SqlDatabase * instance()
void setDatabase(const QSqlDatabase &database)
QVariant lastInsertId() const
void addBindValue(const QVariant &value)
void setQuery(const QString &query)
QVector< QSqlRecord > records() const
void finished(SqlQueryJob *job)