Objective-C: SQLite Wrapper

November 28, 2008 Matteo Bertozzi | Filed Under Mac OS X, iPhone | 2 Comments

I’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.

iPhone Test SQLite App

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];

2 Comments »

RSS feed for comments on this post. TrackBack URI

  1. [...] 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 #

  2. 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 #

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>