5 * Copyright (c) 2008 iThink Software
9 #import <Foundation/Foundation.h>
12 extern int sqlite3_bind_objc_object(sqlite3_stmt *statement, int index, id object);
13 extern id sqlite3_column_objc_object(sqlite3_stmt *statement, int columnIndex);
15 @interface ITSQLite3Database : NSObject {
18 NSRecursiveLock *dbLock;
21 - (id)initWithPath:(NSString *)path;
24 - (BOOL)beginTransaction;
26 - (BOOL)commitTransaction;
28 - (BOOL)rollbackTransaction;
30 - (BOOL)executeQuery:(NSString *)query, ...;
32 // returns a dictionary with column names as keys, or nil
33 - (NSDictionary *)fetchRow:(NSString *)query, ...;
35 // returns an array of dictionaries with column names as keys, or an empty array
36 - (NSArray *)fetchTable:(NSString *)query, ...;
38 // returns a single column value, or nil
39 - (id)fetchRowColumn:(NSString *)query, ...;
41 // returns an array of single column values, or an empty array
42 - (NSArray *)fetchTableColumn:(NSString *)query, ...;