Sqlite: Add update hook and use it to get the last changed id

Sqlite has a function to get the last inserted rowid but very often you
want to get the updated rowid too.

Change-Id: Ie276a5039682813ad16597433996a2959f54d9ba
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Marco Bubke
2020-05-12 12:54:18 +02:00
parent fded815021
commit a4b00a7742
12 changed files with 330 additions and 13 deletions

View File

@@ -40,6 +40,9 @@ class Database;
class SQLITE_EXPORT DatabaseBackend
{
public:
using UpdateCallback
= std::function<void(ChangeType type, char const *, char const *, long long)>;
DatabaseBackend(Database &database);
~DatabaseBackend();
@@ -87,6 +90,9 @@ public:
void walCheckpointFull();
void setUpdateHook(UpdateCallback &callback);
void resetUpdateHook();
protected:
bool databaseIsOpen() const;
@@ -128,7 +134,6 @@ private:
Database &m_database;
sqlite3 *m_databaseHandle;
TextEncoding m_cachedTextEncoding;
};
} // namespace Sqlite