Revision: 23332
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at February 4, 2010 09:44 by espinallab
Initial Code
#pragma mark Sqlite access - (NSString *)databasePath { return [[NSBundle mainBundle] pathForResource:@"holidays" ofType:@"db"]; } - (void)loadHolidaysFrom:(NSDate *)fromDate to:(NSDate *)toDate delegate:(id<KalDataSourceCallbacks>)delegate { NSLog(@"Fetching holidays from the database between %@ and %@...", fromDate, toDate); sqlite3 *db; NSDateFormatter *fmt = [[[NSDateFormatter alloc] init] autorelease]; if(sqlite3_open([[self databasePath] UTF8String], &db) == SQLITE_OK) { const char *sql = "select name, country, date_of_event from holidays where date_of_event between ? and ?"; sqlite3_stmt *stmt; if(sqlite3_prepare_v2(db, sql, -1, &stmt, NULL) == SQLITE_OK) { [fmt setDateFormat:@"yyyy-MM-dd hh:mm:ss"]; sqlite3_bind_text(stmt, 1, [[fmt stringFromDate:fromDate] UTF8String], -1, SQLITE_STATIC); sqlite3_bind_text(stmt, 2, [[fmt stringFromDate:toDate] UTF8String], -1, SQLITE_STATIC); [fmt setDateFormat:@"yyyy-MM-dd"]; while(sqlite3_step(stmt) == SQLITE_ROW) { NSString *name = [NSString stringWithUTF8String:(char *)sqlite3_column_text(stmt, 0)]; NSString *country = [NSString stringWithUTF8String:(char *)sqlite3_column_text(stmt, 1)]; NSString *dateAsText = [NSString stringWithUTF8String:(char *)sqlite3_column_text(stmt, 2)]; [holidays addObject:[Holiday holidayNamed:name country:country date:[fmt dateFromString:dateAsText]]]; } } sqlite3_finalize(stmt); } sqlite3_close(db); [delegate loadedDataSource:self]; }
Initial URL
Initial Description
Initial Title
SQLite3 Sample data
Initial Tags
Initial Language
Objective C