SQLite insert data in objective c
12,248
Solution 1
- (void)inserting{
database=nil;
if (sqlite3_open([[DBAction getSqlitePath] UTF8String], &database) == SQLITE_OK){
const char *sql = [[NSString stringWithFormat:@"insert into SiteTable set Site_Address = '%@'",someString] UTF8String];
sqlite3_stmt *updateStmt = nil;
if(sqlite3_prepare_v2(database, sql, -1, &updateStmt, NULL) != SQLITE_OK)
{
//NSAssert1(0, @"Error while creating update statement. '%s'", sqlite3_errmsg(database));
}
if (SQLITE_DONE != sqlite3_step(updateStmt)){
//NSAssert1(0, @"Error while creating database. '%s'", sqlite3_errmsg(database));
}
sqlite3_reset(updateStmt);
sqlite3_finalize(updateStmt);
}
else{
//NSAssert1(0, @"Error while opening database '%s'", sqlite3_errmsg(database));
}
sqlite3_close(database);
}
Solution 2
Create NSLog for all sql commands that you send to database and then try to execute them from the terminal and you will see all errors and be able to fix them
Author by
Hacer sengul Akac
Updated on June 04, 2022Comments
-
Hacer sengul Akac almost 2 years
I want to insert some data to mydatabase.sqlite but I have a problem. There is no error message when inserting data but then I open database and I cant see any data. There isnt any data.
this is addCoffee method in MyClass:
if(addStmt == nil) { const char *sql = "insert into records(Date, Latitude, Longitude) Values(?, ?, ?)"; if(sqlite3_prepare_v2(database, sql, -1, &addStmt, NULL) != SQLITE_OK) NSAssert1(0, @"Error while creating add statement. '%s'", sqlite3_errmsg(database)); } sqlite3_bind_text(addStmt, 1, [Date UTF8String], -1, SQLITE_TRANSIENT); sqlite3_bind_double(addStmt, 2, [Latitude doubleValue] ); sqlite3_bind_double(addStmt, 3, [Longitude doubleValue] ); if(SQLITE_DONE != sqlite3_step(addStmt)) 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 recordID = sqlite3_last_insert_rowid(database); //Reset the add statement. sqlite3_reset(addStmt);
sending data:
iDailyAppDelegate *appDelegate = (iDailyAppDelegate *)[[UIApplication sharedApplication] delegate]; //Create a MyClass Object. MyClass *coffeeObj = [[MyClass alloc] initWithPrimaryKey:0]; coffeeObj.Date = dateInString; NSDecimalNumber *temp = [[NSDecimalNumber alloc] initWithString:first]; coffeeObj.Latitude = temp; NSDecimalNumber *temp2 = [[NSDecimalNumber alloc] initWithString:second]; coffeeObj.Longitude = temp2; [temp release]; coffeeObj.isDirty = NO; coffeeObj.isDetailViewHydrated = YES; //Add the object [appDelegate addCoffee:coffeeObj];