2016-07-08 38 views
0

Ich habe ein C++/SQLite-Dienstprogramm, um 2 Datenbanken zu vergleichen und die Tabellen zusammenzuführen, die dort in 1. und nicht in 2. sind. Jetzt möchte ich, dass, wenn die Datenbank, in der die neuen Tabellen hinzugefügt werden sollen, zu einem Zeitpunkt geöffnet oder in einem anderen Prozess verwendet wurde, die Zusammenführung nicht stattfinden sollte und ein korrekter Fehler angezeigt werden sollte. Wie kann ich das machen?Überprüfen, ob eine SQLite-Datenbank geöffnet ist oder irgendwo verwendet

Antwort

2

Wenn auf die Datenbankdatei nur über die SQLite-Bibliothek zugegriffen wird, können Sie BEGIN EXCLUSIVE verwenden, um zu überprüfen, ob eine andere Person eine aktive Transaktion hat.

Offene, aber inaktive Verbindungen können dadurch nicht erkannt werden. Sie müssten einen Mechanismus des Betriebssystems verwenden, um nach offenen Dateien zu suchen.

Verwandte Themen