views:

44

answers:

1

Hey,

My function won't add any entry to my existing sql database. Any ideas?

    sqlite3 *database;

    sqlite3_stmt *compiledStatement;
    if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {

     NSString *tmpSQLStatement = [NSString stringWithFormat:@"INSERT INTO data (test) VALUES ('teststring');"];
     const char *sql = [tmpSQLStatement UTF8String];

     if(sqlite3_prepare_v2(database, sql, -1, &compiledStatement, NULL) != SQLITE_OK)
      NSAssert1(0, @"Error while creating add statement. '%s'", sqlite3_errmsg(database));


}                           
    }

No ERRORMESSAGE Is called. But unfortunately nothing is added.

+1  A: 

After sqlite3_prepare_v2, you need to actually execute the statement by calling sqlite3_step. Values should be inserted by then.

Pablo Santa Cruz
You also don't want to be opening the SQLite database for every query. Open once, then close when you are completely done with the database. For your prepared statement, you'll need to sqlite3_finalize that statement before closing the database to avoid errors.
Brad Larson