[core, qt] move self-resetting Statement/Query object to shared header

This commit is contained in:
Konstantin Käfer
2018-02-06 17:55:50 +01:00
parent 5ca38bbde9
commit 136e536159
7 changed files with 553 additions and 536 deletions

View File

@@ -9,21 +9,23 @@ TEST(SQLite, Statement) {
mapbox::sqlite::Database db(":memory:", mapbox::sqlite::Create | mapbox::sqlite::ReadWrite);
db.exec("CREATE TABLE test (id INTEGER);");
mapbox::sqlite::Statement stmt1 = db.prepare("INSERT INTO test (id) VALUES (?1);");
ASSERT_EQ(stmt1.lastInsertRowId(), 0);
ASSERT_EQ(stmt1.changes(), 0u);
stmt1.bind(1, 10);
stmt1.run();
ASSERT_EQ(stmt1.lastInsertRowId(), 1);
ASSERT_EQ(stmt1.changes(), 1u);
mapbox::sqlite::Statement stmt1{ db, "INSERT INTO test (id) VALUES (?1);" };
mapbox::sqlite::Query query1{ stmt1 };
ASSERT_EQ(query1.lastInsertRowId(), 0);
ASSERT_EQ(query1.changes(), 0u);
query1.bind(1, 10);
query1.run();
ASSERT_EQ(query1.lastInsertRowId(), 1);
ASSERT_EQ(query1.changes(), 1u);
mapbox::sqlite::Statement stmt2 = db.prepare("INSERT INTO test (id) VALUES (?1);");
ASSERT_EQ(stmt2.lastInsertRowId(), 0);
ASSERT_EQ(stmt2.changes(), 0u);
stmt2.bind(1, 20);
stmt2.run();
ASSERT_EQ(stmt2.lastInsertRowId(), 2);
ASSERT_EQ(stmt2.changes(), 1u);
mapbox::sqlite::Statement stmt2{ db, "INSERT INTO test (id) VALUES (?1);" };
mapbox::sqlite::Query query2{ stmt2 };
ASSERT_EQ(query2.lastInsertRowId(), 0);
ASSERT_EQ(query2.changes(), 0u);
query2.bind(1, 20);
query2.run();
ASSERT_EQ(query2.lastInsertRowId(), 2);
ASSERT_EQ(query2.changes(), 1u);
}
TEST(SQLite, TEST_REQUIRES_WRITE(CantOpenException)) {