2016-06-16 10 views
0

Wie löst man SQLiteFulException in greenDao, wenn ich Datensatz aus der Tabelle löschen?SQLiteFullException: Datenbank oder Festplatte ist voll (Code 13) GreenDao

das ist mein Stack Trace:

android.database.sqlite.SQLiteFullException: database or disk is full (code 13) 
at android.database.sqlite.SQLiteConnection.nativeExecute(Native Method) 
at android.database.sqlite.SQLiteConnection.execute(SQLiteConnection.java:555) 
at android.database.sqlite.SQLiteSession.endTransactionUnchecked(SQLiteSession.java:437) 
at android.database.sqlite.SQLiteSession.endTransaction(SQLiteSession.java:401) 
at android.database.sqlite.SQLiteDatabase.endTransaction(SQLiteDatabase.java:522) 
at de.greenrobot.dao.AbstractDao.deleteInTxInternal(AbstractDao.java:613) 
at de.greenrobot.dao.AbstractDao.deleteInTx(AbstractDao.java:623) 

diese aus der Datenbank meinen Code zum Löschen Datensatz ist:

QueryBuilder<TaskD> qb = getTaskDDao(context).queryBuilder(); 
qb.where(TaskDDao.Properties.Uuid_task_h.eq(keyTaskH)); 
qb.build(); 
getTaskDDao(context).deleteInTx(qb.list()); 
getDaoSession(context).clear(); 
+0

Bitte geben Sie den Code ein, den Sie verwenden. – Egor

+0

Frage wurde für Code bearbeitet, dass ich @Egor verwende –

Antwort

1

Dies ist in keinem Zusammenhang mit greenDAO. Wenn Ihre Festplatte voll ist, ist sie voll. Sie haben keinen Speicherplatz mehr. Je nachdem, was Sie tun, kann das Ausführen von VACUUM SQLite gelegentlich Ihre Datenbank defragmentieren.

+0

OK, ich werde es versuchen. Danke für die Antwort. –

+0

Gibt es die Möglichkeit von GreenDao für die Einstellung von schema.auto_vacuum in der Datenbank, @greenrobot? –

+0

Nein, greenDAO berührt das Vakuum überhaupt nicht –

0

Von SQLite Dokumentation

(13) SQLITE_FULL

Die SQLITE_FULL Ergebniscode zeigt an, dass ein Schreib konnte nicht abgeschlossen werden, da die Festplatte voll ist. Beachten Sie, dass dieser Fehler auftreten kann, wenn Sie versuchen, Informationen in die Hauptdatenbankdatei zu schreiben, oder dass es auch beim Schreiben in temporäre Datenträgerdateien auftreten kann. Manchmal tritt bei Anwendungen der Fehler auf, obwohl genügend primärer Speicherplatz vorhanden ist, da der Fehler beim Schreiben in temporäre Dateien auf einem System auftritt, auf dem temporäre Dateien auf einer separaten Partition mit wesentlich weniger Speicherplatz als der primäre Datenträger gespeichert sind. https://www.sqlite.org/rescode.html#full

Ich denke, die Anwendung ist auf SDCARD oder etwas installiert.