2011-08-04 4 views
0

Lorsque nous exécutons la méthode checkAndCreateDatabase, il est indiqué que la base de données existe mais que le message sqlite3_error renvoie une erreur "out of memory" avant de quitter la méthode. Comment cela peut-il être réparé?xcode sqlite3 erreur "mémoire insuffisante"

-(void) checkAndCreateDatabase{ 
NSLog(@"Run Method: checkAndCreateDatabase"); 
// Check if the SQL database has already been saved to the users phone, if not then copy it over 
BOOL success; 

// Create a FileManager object, we will use this to check the status 
// of the database and to copy it over if required 
// Check if the database has already been created in the users filesystem 
success = [[NSFileManager defaultManager] fileExistsAtPath:databasePath]; 

// If the database already exists then return without doing anything 
if(success){ 
    NSLog(@"Database Exists"); 
} else { 

    // If not then proceed to copy the database from the application to the users filesystem 
    NSLog(@"Database Does Not Exist"); 

    // Get the path to the database in the application package 
    NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:databaseName]; 

    // Copy the database from the package to the users filesystem 
    [[NSFileManager defaultManager] copyItemAtPath:databasePathFromApp toPath:databasePath error:nil]; 
    NSLog(@"Database Copied To filesystem And Exists"); 
} 
NSLog(@"Method checkAndCreateDatabase Finished Message: %s",sqlite3_errmsg(database)); 
return; 
} 

- (void)viewDidLoad { 
NSLog(@"Run Method: viewDidLoad"); 
// Setup some globals 
databaseName = @"w2w.db"; 
NSLog(@"Database Name: %@",databaseName); 

// Get the path to the documents directory and append the databaseName 
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDir = [documentPaths objectAtIndex:0]; 
databasePath = [documentsDir stringByAppendingPathComponent:databaseName]; 
NSLog(@"Database Path: %@",databasePath); 

// Execute the "checkAndCreateDatabase" function 
[self checkAndCreateDatabase]; 

[super viewDidLoad]; 
} 
+0

Et la question est? – Bart

+0

Lorsque nous exécutons la méthode checkAndCreateDatabase, il est indiqué que la base de données existe mais que le message sqlite3_error renvoie une erreur "out of memory" avant de quitter la méthode. Comment cela peut-il être réparé? – Turningpoint

+0

Vous voudrez peut-être ajouter cela à la question. Maintenant, c'est juste une plaque de code. – Bart

Répondre

0

Où la variable de base de données est-elle initialisée? J'ai rencontré ce même message d'erreur lorsque j'ai transmis accidentellement un paramètre non défini ou incorrect à sqlite3_errmsg(). Je pense que c'est le message d'erreur par défaut.

Questions connexes