so beheben Sie Fehler beim Aufruf sqlite3_step (21: out of memory) rs in der FMDB
ich bin mit FMDB-wrapper, die ich verwendet
dieser code
- (BOOL)update:(NSString *) Body fromValue:(NSString *)froms {
BOOL success = NO;
FMResultSet *rs;
//I have **searchTable** and in that folder name **OFFICE**
rs = [self.database executeQuery:@"select searchId,body from searchTable WHERE folder = 'OFFICE'"];
NSInteger primaryKey = -1;
NSString *body = nil;
NSString *md5OfSearchEmailBody = nil;
while ([rs next]) {
primaryKey = [rs intForColumn:@"searchId"];
body = [rs stringForColumn:@"body"];
}
[rs close];
return success;
}
ersten mal
- (BOOL)update:(NSString *) Body fromValue:(NSString *)froms{
}
Methode gut funktioniert. in die Schleife ein zweites mal funktioniert es nicht
Fehler beim Aufruf sqlite3_step (21: out of memory) rs
wie dieses problem zu lösen
- Wie haben Sie dieses problem lösen? Ich sehe, Sie markiert eine Antwort als korrekte, aber ich würde gerne wissen, was du getan hast, denn ich habe das gleiche Problem. Hast du das problem beheben oder hast du den switch an den Core-Daten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Check für die
[rs close];
Kann es die Freigabe oder schließen der DB.
===================================================
Bessere Nutzung CoreData zu implementieren sqlite in Ihrer Anwendung.
Warum nutzen Sie externe Bibliothek verwendet wird, wenn eine bessere interne Bibliothek ist in der Anwendung verfügbar. Brauchen Sie nicht zu entfernen Sie Ihre sqlite-Tabelle. Sie können einfach migrieren der vorhandenen Datenbank zu CoreData.
War ich immer die gleichen Fehler, weil der Ruf [Datenbank schließen], bevor der Anruf [resultSet next].
Rufen soll [Datenbank schließen] nach Aufruf von [resultSet next]
ich war immer out of memory-auch nach [rs schließen]; also habe ich benutzt :
löste ich meine mory Wachstum als auch für die out-of-memory-Fehler.
Dank
Ich Stand vor dem gleichen Fehler. Also im Grunde hatte ich zwei Funktionen, sagen func1() und func2().
In func1() ich Tat das folgende:
1.) Die Generierung der Ergebnismenge.
2.) Drucken das Ergebnis( Zum Testen)
3.) Aufruf von func2() mit dem Ergebnis-set als argument.
In func2(), ich Stand vor dem Fehler, während ich versuchte zum Durchlaufen des ResultSet empfangen von func1().
Wenn ich entfernt den code in func1() (Schritt 2), war der Fehler Weg!
Zur Behebung der out-of-memory-Problem, ich hatte meinen code wie unten zu überprüfen, am Ende der Schleife, wenn Schleife == LocationCount dann brechen Sie die Schleife. Wenn ich es weggelassen wäre es [rs nächste] das würde dann gib mir den Fehler beim Aufruf sqlite3_step (21: out of memory) rs.
Ich würde empfehlen, etwas ähnliches zu tun, so dass [rs nächste] nicht, so dass mehr als das, was erforderlich ist für Ihre Funktion.