2011-01-10 4 views
0

Einfügen von I-Code verwenden folgende in SQLLite iphone mit einzufügen - (void) speichern {Iam Störung zu erhalten, nachdem die Daten in zu sqlite3

AlarmData *alarm=[CallSettings getAlarm]; 
alarm.subject=subjectText.text; 
alarm.sound=tempDefault; 
NSDate *dat=[datePicker date]; 
NSString *da=(NSString *)[NSString stringWithFormat:@"%@",dat]; 
alarm.date=da; 

//alarmData.date=da; 
NSLog([CallSettings getAlarm].subject); 
NSLog([CallSettings getAlarm].no1); 
NSLog([CallSettings getAlarm].lname); 
NSLog([CallSettings getAlarm].name); 
NSLog([CallSettings getAlarm].date); 
NSLog([CallSettings getAlarm].sound); 


NSString *fullName=[NSString stringWithFormat:@"%@ %@",alarm.name,alarm.lname]; 

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsPath = [paths objectAtIndex:0]; 
NSString *filePath = [documentsPath stringByAppendingPathComponent:@"appointment.sql"]; 
sqlite3 *database; 
if(sqlite3_open([filePath UTF8String], &database) == SQLITE_OK) { 
    // Setup the SQL Statement and compile it for faster access 
    const char *sqlStatement = "select * from Alarm"; 

    sqlite3_stmt *compiledStatement; 

    if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) { 
     // Loop through the results and add them to the feeds array 

     compiledStatement=NULL; 

     const char *sql = "insert into Alarm(name) values ('Ahmed')"; 

     if(sqlite3_prepare_v2(database, sql, -1, &compiledStatement, NULL) != SQLITE_OK); 
     else { 
      if(SQLITE_DONE != sqlite3_step(compiledStatement)) 
       NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database)); 
      else 
       //SQLite provides a method to get the last primary key inserted by using sqlite3_last_insert_rowid 
       //coffeeID = sqlite3_last_insert_rowid(database); 
       NSLog(@"Value is inserted"); 
      // sqlite3_reset(compiledStatement); 
     } 
    } 




    } 




} 
sqlite3_close(database); 

} // Ende der

Bei Aufruf speichern Methode

diese Methode app Abstürze und folgende Fehler tritt

2011-01-10 19: 23: 56,307 Verabredungs ​​[521: 207] * Beenden app aufgrund abgefangene Ausnahme 'NSInvalidArgumentException', Grund: ‚* + [NSString stringWithUTF8St Ring:]: NULL cString‘ 2011-01-10 19: 23: 56,321 Verabredungs ​​[521: 207] Stack: ( 843.263.261, 825.818.644, 842.812.211, 842.812.115, 863.177.559, 21701, 844.154.820, 19557 , 846.200.172, 843.020.431, 844.097.412, 844.097.260, 844.097.204, 844.096.268, 844.356.084, 846.188.672, 862.896.011, 843.011.267, 843.009.055, 860.901.832,„SIGABRT“:843738160, 843.731.504, 10565, 10480 ) beenden, nachdem das Auslösen einer Instanz von 'NSException' Programm empfangenes Signal bezeichnet. (GDB)

und Anwendungen Dont beim nächsten Mal, bis laufen und wenn ich die App von meinem Gerät löschen denke ich Datenbank-Datei

+0

ist dies wegen null Spalten? – Ali

Antwort

1

stürzt Sie sollten sqlite3_finalize (compiledStatement) anstelle von compiledStatement = NULL verwenden; Lesen Sie einfach die Dokumentation und Sie werden verstehen, warum. Oder Sie könnten eine andere Variable für sqlite3_stmt für INSERT verwenden.

Verwandte Themen