Objective-C: SQLite Wrapper
November 28, 2008 Matteo Bertozzi | Filed Under Mac OS X, iPhone | 2 CommentsI’ve written a simple SQLite Wrapper with two Examples one for Mac and one for the iPhone. The Wrapper class has the same source code for both platforms.
Here you can find the Mac Example Source Code and the iPhone Example Source Code.
This is a simple usage example:
Sqlite *sqlite = [[Sqlite alloc] init];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *writableDBPath = [documentsDirectory
stringByAppendingPathComponent:@"SQLiteTest.db"];
if (![sqlite open:writableDBPath])
return;
[sqlite executeNonQuery:@"CREATE TABLE test (key TEXT NOT NULL, value TEXT);"];
[sqlite executeNonQuery:@"DELETE FROM test;"];
[sqlite executeNonQuery:@"INSERT INTO test VALUES (?, ?);",
[Sqlite createUuid], @"PROVA"];
[sqlite executeNonQuery:@"INSERT INTO test VALUES (?, ?);",
[Sqlite createUuid], @"PROVA 2"];
[sqlite executeNonQuery:@"INSERT INTO test VALUES (?, ?);",
[Sqlite createUuid], @"PROVA 3"];
NSArray *results = [sqlite executeQuery:@"SELECT * FROM test;"];
for (NSDictionary *dictionary in results) {
NSLog(@"Row");
for (NSString *key in [dictionary keyEnumerator])
NSLog(@" - %@ %@", key, [dictionary objectForKey:key]);
}
[results release];
[sqlite release];

[...] bookmarks tagged objective Objective-C: SQLite Wrapper : Th30z – Coding on th… saved by 5 others justkidding19 bookmarked on 12/07/08 | [...]
Pingback by Pages tagged "objective" — December 7, 2008 #
Hi Matteo,
I’ve found that your code has some problem with accented characters, so I’ve modified the columnData routine:
if (columnType == SQLITE_TEXT) {
// const unsigned char *text = sqlite3_column_text(stmt, index);
// return [NSString stringWithFormat:@"%s", text];
char *str = (char *)sqlite3_column_text(stmt, index);
return (str) ? [NSString stringWithUTF8String:str] : @”";
}
Thanks for posting your code.
Ste
Comment by Stefano Falda — April 1, 2009 #