X-Git-Url: http://git.ithinksw.org/ITFoundation.git/blobdiff_plain/744612b5d258474e367710b870a5caaed7d11ab9..0238d96a35ba0c9d948e03672cce0506f8a57b46:/ITSQLite3Database.h diff --git a/ITSQLite3Database.h b/ITSQLite3Database.h index ed13477..ee9163c 100644 --- a/ITSQLite3Database.h +++ b/ITSQLite3Database.h @@ -12,12 +12,13 @@ #import #import -static int sqlite3_bind_objc_object(sqlite3_stmt *statement, int index, id object); -static id sqlite3_column_objc_object(sqlite3_stmt *statement, int columnIndex); +extern int sqlite3_bind_objc_object(sqlite3_stmt *statement, int index, id object); +extern id sqlite3_column_objc_object(sqlite3_stmt *statement, int columnIndex); @interface ITSQLite3Database : NSObject { NSString *dbPath; sqlite3 *db; + NSRecursiveLock *dbLock; } - (id)initWithPath:(NSString *)path; @@ -29,13 +30,18 @@ static id sqlite3_column_objc_object(sqlite3_stmt *statement, int columnIndex); - (BOOL)rollback; - (BOOL)rollbackTransaction; -- (BOOL)executeQuery:(NSString *)query va_args:(va_list)args; - (BOOL)executeQuery:(NSString *)query, ...; -- (NSDictionary *)fetchRow:(NSString *)query va_args:(va_list)args; +// returns a dictionary with column names as keys, or nil - (NSDictionary *)fetchRow:(NSString *)query, ...; -- (NSArray *)fetchTable:(NSString *)query va_args:(va_list)args; +// returns an array of dictionaries with column names as keys, or an empty array - (NSArray *)fetchTable:(NSString *)query, ...; +// returns a single column value, or nil +- (id)fetchRowColumn:(NSString *)query, ...; + +// returns an array of single column values, or an empty array +- (NSArray *)fetchTableColumn:(NSString *)query, ...; + @end