Tout d'abord, je suis assez nouveau pour le développement de l'iPhone, et tout nouveau à l'intégration de sqlite3 dans mon application. Je l'ai utilisé dans mes applications Android et Blackberry, donc je connais les commandes de base et autres. Voici mon problème: J'ai créé un DB et une table par programme (les deux ont été créés correctement). Voici le code que j'ai utilisé pour créer la table:iphone sqlite insérer ... EXC_BAD_ACCESS
const char *sql_stmt = "CREATE TABLE IF NOT EXISTS EXPENSES (id integer primary key autoincrement, unix_date integer, date_time text, purpose text, start_mile text, end_mile text, distance text, fees text, party_id integer)";
La table a été créée correctement.
Cette fonction je pour enregistrer les données:
- (void) saveData
{
sqlite3_stmt *statement;
const char *dbpath = [databasePath UTF8String];
NSString *timestamp = [NSString stringWithFormat:@"%d", (long)[[NSDate date] timeIntervalSince1970]];
if (sqlite3_open(dbpath, &expenseDB) == SQLITE_OK)
{
NSString *insertSQL = [NSString stringWithFormat:@"INSERT INTO EXPENSES (timestamp, date_time, purpose, start_mile, end_mile, distance, fees, party_id) VALUES (\"%d\", \"%@\", \"%@\", \"%@\", \"%@\", \"%@\", \"%@\", \"%d\")", 9, @"date", @"purpose", @"start", @"end", @"miles", @"tolls", 0];
const char *insert_stmt = [insertSQL UTF8String];
sqlite3_prepare_v2(expenseDB, insert_stmt, -1, &statement, NULL);
if (sqlite3_step(statement) == SQLITE_DONE)
{
// status.text = @"Contact added";
} else {
// status.text = @"Failed to add contact";
}
sqlite3_finalize(statement);
sqlite3_close(expenseDB);
}
[timestamp release];
}
Quand je lance ce code, je reçois un EXC_BAD_ACCESS du thread principal. Je pensais que cette erreur apparaissait généralement lorsqu'une valeur NSString était assignée comme valeur de chaîne?
Des pensées?
Ah! C'était ça. Toujours en train de maîtriser la gestion de la mémoire ... été patiner avec Java. Merci! – coder