Licensing ITFoundation under the GNU General Public License version 2.
[ITFoundation.git] / ITSQLite3Database.h
index ed13477..b08327d 100644 (file)
@@ -2,22 +2,20 @@
  *     ITFoundation
  *     ITSQLite3Database.h
  *
- *     Copyright (c) 2008 by iThink Software.
- *     All Rights Reserved.
- *
- *     $Id$
+ *     Copyright (c) 2008 iThink Software
  *
  */
 
 #import <Foundation/Foundation.h>
 #import <sqlite3.h>
 
-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 +27,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