Ho un problema con un progetto sqlite che sto facendo, sto usando FMDB, seguo un semplice esempio, ma non funziona. E non riesco a trovare l'errore. Ho fatto il mio schema di database dal terminale, ho messo alcuni dati su di esso. Sono molto nuovo per iOS Dev, quindi non so esattamente se ho fatto i passi ok. Questo è quello che ho fatto:FMDB ios no tale tabella
1 - Ho creato lo schema del mio database e aggiunto alcuni campi. 2 - Ho copiato il database.db nella mia cartella di progetto in xcode. 3 - Aggiungo i file FMDB. 4 - aggiungo lo sqlite3.dylib 5 - ho messo questo codice:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.dbname = @"database.db";
NSArray * docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * docDIr = [docPath objectAtIndex:0];
self.dbpath = [docDIr stringByAppendingPathComponent:dbname];
[self checkDB];
[self getQ];
return YES;
}
-(void) getQ
{
FMDatabase * db = [FMDatabase databaseWithPath:dbpath];
[db open];
FMResultSet * result = [db executeQuery:@"SELECT * FROM table1"];
NSLog(@"last Error: %@",[db lastErrorMessage]);
NSLog(@"result: %@", result);
}
-(void) checkDB
{
BOOL success;
NSFileManager * fm = [NSFileManager defaultManager];
success = [fm fileExistsAtPath:dbpath];
NSError * error = [[NSError alloc] init];
if (success) return;
NSLog(@"result:");
NSString * dbPathFromApp = [[[NSBundle mainBundle] resourcePath]stringByAppendingPathComponent:self.dbname];
[fm copyItemAtPath:dbPathFromApp toPath:dbpath error:&error];
}
A quanto pare il database è vuoto, così che cosa è successo? perché non riesco a trovare table1? Se apro il file con qualsiasi interfaccia sqlite, la tabella appare corretta. Grazie per l'aiuto La console mostra le righe successive: 2013-03-02 14: 03: 31.839 myApp [21433: c07] ultimo errore: nessuna tabella: tabella1 2013-03-02 14: 03: 31.841 myApp [21433: c07] risultato: (null)
Grazie mille! questo è tutto, i passaggi 1 e 2 funzionano perfettamente! Ho dimenticato un passaggio, errore newbie: D – Fede
Il tuo punto 2 è quello che ho dimenticato. Non ho copiato il database dal pacchetto nella directory dei documenti. – Suragch
Grazie mille! ~ Il passaggio 1 era quello che dovevo fare :) –