#import #import "sqlite3.h" #import "FMResultSet.h" @interface FMDatabase : NSObject { sqlite3* db; NSString* databasePath; BOOL logsErrors; BOOL crashOnErrors; BOOL inUse; BOOL inTransaction; BOOL traceExecution; BOOL checkedOut; int busyRetryTimeout; BOOL shouldCacheStatements; NSMutableDictionary *cachedStatements; } + (id)databaseWithPath:(NSString*)inPath; - (id)initWithPath:(NSString*)inPath; - (BOOL) open; #if SQLITE_VERSION_NUMBER >= 3005000 - (BOOL) openWithFlags:(int)flags; #endif - (void) close; - (BOOL) goodConnection; - (void) clearCachedStatements; // encryption methods. You need to have purchased the sqlite encryption extensions for these to work. - (BOOL) setKey:(NSString*)key; - (BOOL) rekey:(NSString*)key; - (NSString *) databasePath; - (NSString*) lastErrorMessage; - (int) lastErrorCode; - (BOOL) hadError; - (sqlite_int64) lastInsertRowId; - (sqlite3*) sqliteHandle; - (BOOL) executeUpdate:(NSString*)sql, ...; - (BOOL) executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray *)arguments; - (id) executeQuery:(NSString *)sql withArgumentsInArray:(NSArray*)arrayArgs orVAList:(va_list)args; // you shouldn't ever need to call this. use the previous two instead. - (id) executeQuery:(NSString*)sql, ...; - (id) executeQuery:(NSString *)sql withArgumentsInArray:(NSArray *)arguments; - (BOOL) executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray*)arrayArgs orVAList:(va_list)args; // you shouldn't ever need to call this. use the previous two instead. - (BOOL) rollback; - (BOOL) commit; - (BOOL) beginTransaction; - (BOOL) beginDeferredTransaction; - (BOOL)logsErrors; - (void)setLogsErrors:(BOOL)flag; - (BOOL)crashOnErrors; - (void)setCrashOnErrors:(BOOL)flag; - (BOOL)inUse; - (void)setInUse:(BOOL)value; - (BOOL)inTransaction; - (void)setInTransaction:(BOOL)flag; - (BOOL)traceExecution; - (void)setTraceExecution:(BOOL)flag; - (BOOL)checkedOut; - (void)setCheckedOut:(BOOL)flag; - (int)busyRetryTimeout; - (void)setBusyRetryTimeout:(int)newBusyRetryTimeout; - (BOOL)shouldCacheStatements; - (void)setShouldCacheStatements:(BOOL)value; - (NSMutableDictionary *)cachedStatements; - (void)setCachedStatements:(NSMutableDictionary *)value; + (NSString*) sqliteLibVersion; - (int)changes; @end @interface FMStatement : NSObject { sqlite3_stmt *statement; NSString *query; long useCount; } - (void) close; - (void) reset; - (sqlite3_stmt *)statement; - (void)setStatement:(sqlite3_stmt *)value; - (NSString *)query; - (void)setQuery:(NSString *)value; - (long)useCount; - (void)setUseCount:(long)value; @end