wie zu lösen Fehler beim Aufruf von sqlite3_step (21: nicht genügend Speicher) rs in FMDB

8

Ich verwende den FMDB-Wrapper, den ich benutzt habe dieser Code

%Vor%

zum ersten Mal

%Vor%

Methode funktioniert gut. in der Schleife zum zweiten Mal funktioniert es nicht

  

Fehler beim Aufruf von sqlite3_step (21: nicht genügend Arbeitsspeicher) rs

wie man dieses Problem löst

    
sreenivas 22.12.2011, 15:46
quelle

5 Antworten

5

Prüfe auf%%%% /%

Es kann sein, dass die Datenbank freigegeben oder geschlossen wird.

================================================ ====

Verwenden Sie besser CoreData, um SQLite in Ihrer Anwendung zu implementieren.

Warum sollte eine externe Bibliothek verwendet werden, wenn in der Anwendung eine bessere interne Bibliothek verfügbar ist? Sie müssen Ihre sqlite-Tabelle nicht entfernen. Sie können Ihre vorhandene Datenbank problemlos zu CoreData migrieren.

    
iCreative 22.12.2011, 15:51
quelle
3

Ich bekam denselben Fehler, weil [Datenbank schließen] vor Aufruf [resultSet next] aufgerufen wurde.

%Vor%

Sollte [Datenbank schließen] nach Aufruf [resultSet next]

aufrufen %Vor%     
Artem Illarionov 02.06.2016 06:22
quelle
0

ich war selbst nach [rs close] aus der Erinnerung; also habe ich benutzt:

%Vor%

Ich habe sowohl mein Wachstum als auch meinen Speicherfehler behoben.

Danke

    
Alok 29.11.2013 10:01
quelle
0

Ich hatte den gleichen Fehler. Also im Grunde hatte ich zwei Funktionen, sagen wir func1 () und func2 ().

In func1 () habe ich folgendes gemacht:

1.) Erzeugen der Ergebnismenge. 2.) Drucken des Ergebnisses (zum Testen) 3.) Aufruf von func2 () mit dem Ergebnis als Argument.

In func2 () war ich mit dem Fehler konfrontiert, während ich versuchte, die Ergebnismenge von func1 () zu durchlaufen.

Wenn ich den Code in func1 () (Schritt 2) entfernt habe, war der Fehler weg!

    
Kunal Shrivastava 15.06.2014 14:53
quelle
0

Um das Problem mit dem nicht ausreichenden Arbeitsspeicher zu beheben, musste ich meinen Code wie unten beschrieben einstellen, um am Ende der Schleife zu überprüfen, ob Schleife == LocationCount dann die Schleife unterbricht. Wenn ich es weggelassen hätte, würde es [rs next] geben, was mir dann den Fehler beim Aufruf von sqlite3_step (21: out of memory) rs geben würde. Ich würde empfehlen, etwas ähnliches zu tun, damit [rs next] nicht mehr als das, was für Ihre Funktion erforderlich ist.

%Vor%     
Breathable 06.09.2017 14:36
quelle

Tags und Links