SQLite error: cannot commit transaction - SQL-Anweisungen-in-progress unter Verwendung von Java-Code
Ich bin vor einer SQLite-Fehler, obwohl ich bin nicht mit jedem explizite AutoCommit true oder false.
kann jemand irgendwelche Eingaben auf dieser Fehler. Was sind die situation, in der Sie diese Fehlermeldung erhalten.
Vielen Dank im Voraus.
Grüße,
Manasi Speichern
- Können Sie bitte ein code-fragment?
- Und welche version von SQLite sind Sie?
- Ich bin mit SQLite Version 3
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stand ich vor einem ähnlichen problem immer wieder (in meinem Fall war es ein rollback war nicht möglich) wenn ich innerhalb einer loop-Schleife über die Einträge der Tabelle. Solange der cursor ist die Verarbeitung der Eingaben ein SQL-statement ist "in progress". Ich weiß nicht genau, ob dies auch verbietet verpflichtet, aber es könnte sein.
Wenn Sie versuchen zu verarbeiten, die Einträge der Tabelle und einfügen von Einträgen in der gleichen oder einer anderen Tabelle, möchten Sie vielleicht versuchen Sie, sammeln der Daten im Speicher und nach der Schleife tun, die eingefügt oder aktualisiert.
Zusätzliche info: "Autocommit" normalerweise standardmäßig auf "True" in SQLite (ist es natürlich auch abhängig von der access-layer, den Sie verwenden, -- ich bin mit Python und apsw, so kann ich Ihnen nicht sagen, mehr über diese in Java). Dies bedeutet, dass jedes insert ist autocommited sofort.
==> dies könnte eine andere Lösung geben. Statt der Speicherung der Daten im Speicher, die Sie könnten versuchen, explizit öffnen einer Transaktion und übernehmen es nach der Schleife -- dieser Weg, das problem sollte gehen auch Weg.