Wie Begehen Sie eine SQLite-Transaktion in C/C++?
Ich bin mit sqlite c/c++ - Schnittstelle.
Ich habe 3 Tabellen (verknüpfte Tabellen) sagen: A, B, C. Nun, es gibt eine Funktion namens Set, die einige Eingänge und auf der Grundlage der Eingänge fügt Zeilen in diese drei Tabellen. (manchmal kann es ein update in einer der Tabellen)
Nun brauche ich zwei Dinge. Man, ich will nicht mit der autocommit-Funktion. Grundsätzlich würde ich gerne Begehen, nachdem alle 1000 Aufrufe Set Funktion
Zweitens, innerhalb der Funktion selbst, wenn ich finde, dass nach dem einsetzen in zwei Tabellen, die Dritte insert fehlschlägt, dann muss ich zurück, die insbesondere die änderungen Set Aufruf der Funktion.
Nun sehe ich keine sqlite3_commit Funktion ausgesetzt. Ich sehe nur eine Funktion, die aufgerufen wird sqlite3_commit_hook (), die etwas diff Dokumentation.
Gibt es irgendwelche Funktion ausgesetzt, die für diesen Zweck? oder wie ist der Weg zum erreichen dieses Verhalten?
Können Sie mir helfen mit der beste Ansatz, dies zu tun.
- können Sie nicht einfach ausführen
BEGIN
undCOMMIT
Abfragen? - Sollten Sie vielleicht überdenken, die die ausgewählte Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie mit BEGIN, COMMIT und ROLLBACK sql-Anweisungen in C/C++ - code?
Verwenden Sie sqlite3_exec und pass "BEGIN TRANSACTION" und "END TRANSACTION" ersetzt.
Gibt es Synonyme für diese SQL-Befehle (wie
COMMIT
stattEND TRANSACTION
). Als Referenz, hier ist die SQLite-Dokumentation für Transaktionen.