Hallo,
verwende QSqlDatabase und sqlite. Der SqlBefehl "drop table" stößt auf den Fehler "database table is locked Unable to fetch row". Die Doku von sqlite sagt hierzu folgendes:
Trying to CREATE or DROP a table or index while a SELECT statement is still pending.
Sometimes people think they have finished with a SELECT statement because sqlite3_step() has returned SQLITE_DONE. But the SELECT is not really complete until sqlite3_reset() or sqlite3_finalize() have been called.
Mit "sqlite3_reset() etc" ist offensichtlich die C-API gemeint.
Wie kann ich diesen Befehl mit Qt realisieren, aufrufen ??
tschüß
Troll.Soft
Zuletzt geändert von Troll.Soft am 17. August 2010 15:34, insgesamt 1-mal geändert.
franzf hat geschrieben:Speicherst du irgendwo ein QSqlQuery-Objekt mit aktivem SELECT? Wäre meine erste Anlaufstelle.
Das von Dir angesprchene Problem kenne ich. Ist hier definitiv nicht der Fall. Es sind auch nur einige Table, die sich nicht droppen lassen, wobei ich den Unterschied zwischen den Tabellen, die sich löschen lassen und denen, die sich nicht löschen lassen nicht erkennen kann.
tschüß
Troll.Soft
In der Tat, ich verwende models. Aber so wie vorgesehen, setQuery etc.
Wenn der Drop nicht will, kann ich trotzdem ein "exec("delete from " + TableName);" mit Erfolg abschicken. Verlasse ich anschließend mein Programm und starte es wieder, läßt sich droppen.
Ist aber ein ziemlich öder Workaround
tschüß
Troll.Soft
franzf hat geschrieben:Speicherst du irgendwo ein QSqlQuery-Objekt mit aktivem SELECT? Wäre meine erste Anlaufstelle.
Seufz, Fehler entdeckt.
In den älteren Untiefen meine Projekts fanden sich nicht ordnungsgemäß vernichtete Modells. Und somit trifft obige Vermutung den Punkt.
tschüß
Troll.Soft