- how store primerykey in sqlitedatabase in iphone
- +(void) getInitialDataToDisplay:(NSString *)dbPath
- {
- SqltestAppDelegate *appDelegate =(SqltestAppDelegate *)[[UIApplication sharedApplication]delegate];
- if (sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK)
- {
- const char *sql = "select JourneyID,JourneyName,LocationName,Description from UserJourney";
- sqlite3_stmt *selectstmt;
- if (sqlite3_prepare_v2(database, sql, -1, &selectstmt, NULL) == SQLITE_OK)
- {
- while (sqlite3_step(selectstmt) == SQLITE_ROW)
- {
- NSInteger primaryKey = sqlite3_column_int(selectstmt, 0);
- NewJourney *newobj = [[NewJourney alloc]initWithPrimaryKey:primaryKey];
- newobj.journeyName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 1)];
- newobj.isDirty = NO;
- [appDelegate.journeyList addObject:newobj];
- [appDelegate.journeyList release];
- }
- }
- }
- else {
- sqlite3_close(database);
- }
- }
- +(void) finalizeStatements
- {
- if (database) sqlite3_close(database);
- if (database) sqlite3_finalize(deleteStmt);
- if (database) sqlite3_finalize(addStmt);
- if (database) sqlite3_finalize(detailSmt);
- if (database) sqlite3_finalize(updateStmt);
- }
- -(id) initWithPrimaryKey:(NSInteger)pk
- {
- [super init];
- journeyID = pk;
- isDetailViewHydrated = NO;
- return self;
- }
- -(void) deleteCoffee
- {
- if (deleteStmt == nil)
- {
- const char *sql = "delete from UserJourney where JourneyID = ?";
- if (sqlite3_prepare_v2(database, sql, -1, &deleteStmt,NULL) != SQLITE_OK)
- {
- NSAssert1(0,@"Error while creating delete statemnet.'%s'",sqlite3_errmsg(database));
- }
- //when binding parameters, index starts from 1 and not zero.
- sqlite3_bind_int(deleteStmt, 1, journeyID);
- if (SQLITE_DONE != sqlite3_step(deleteStmt))
- {
- NSAssert1(0,@"Error while deleting. '%s'",sqlite3_errmsg(database));
- }
- sqlite3_reset(deleteStmt);
- }
- }
- -(void) addCoffee
- {
- if (addStmt == nil)
- {
- const char *sql = "insert into UserJourney(JourneyName,LocationName,Description) 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 , [journeyName UTF8String], -1, SQLITE_TRANSIENT);
- sqlite3_bind_text(addStmt, 2 , [locationName UTF8String],-1, SQLITE_TRANSIENT);
- sqlite3_bind_text(addStmt, 3, [description UTF8String],-1, SQLITE_TRANSIENT);
- if (SQLITE_DONE != sqlite3_step(addStmt))
- {
- NSAssert1(0,@"Error while inserting data. '%s'",sqlite3_errmsg(database));
- }else
- {
- journeyID = sqlite3_last_insert_rowid(database);
- }
- sqlite3_reset(addStmt);
- }
- }
- /*-(void) hydrateDetailViewData
- {
- if (isDetailViewHydrated) return;
- if (detailSmt == nil) {
- const char *sql = "select JourneyName,Description from UserJourney where JourneyID = ?";
- if (sqlite3_prepare_v2(database, sql, -1, &detailSmt,NULL) != SQLITE_OK)
- NSAssert1(0,@"Error while creating detail view statement. '%s'",sqlite3_errmsg(database));
- }
- sqlite3_bind_int(detailSmt,1,journeyID);
- if (SQLITE_DONE != sqlite3_step(detailSmt))
- {
- <#statements#>
- }
- }*/
- -(void)saveAllData
- {
- if (isDirty) {
- if (updateStmt == nil) {
- const char *sql = "update UserJourney Set JourneyName = ?,LocationName = ?, Description = ? Where JourneyID =?";
- if (sqlite3_prepare_v2(database, sql, -1, &updateStmt, NULL) != SQLITE_OK)
- NSAssert1(0,@"Error while creating update statement. '%s'",sqlite3_errmsg(database));
- }
- sqlite3_bind_text(updateStmt, 1, [journeyName UTF8String], -1, SQLITE_TRANSIENT);
- sqlite3_bind_text(updateStmt, 2, [locationName UTF8String], -1, SQLITE_TRANSIENT);
- sqlite3_bind_text(updateStmt, 3, [description UTF8String], -1, SQLITE_TRANSIENT);
- sqlite3_bind_int(updateStmt,4, journeyID);
- if(SQLITE_DONE != sqlite3_step(updateStmt))
- NSAssert1(0, @"Error while updating. '%s'", sqlite3_errmsg(database));
- sqlite3_reset(updateStmt);
- isDirty = NO;
- }
- [journeyName release];
- journeyName = nil;
- isDetailViewHydrated = NO;
- }
- [appDelegate.journeyList release];
- [newobj release];