| #import <Foundation/Foundation.h> |
| #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; |
| NSMutableSet *openResultSets; |
| } |
| |
| |
| + (id)databaseWithPath:(NSString*)inPath; |
| - (id)initWithPath:(NSString*)inPath; |
| |
| - (BOOL)open; |
| #if SQLITE_VERSION_NUMBER >= 3005000 |
| - (BOOL)openWithFlags:(int)flags; |
| #endif |
| - (BOOL)close; |
| - (BOOL)goodConnection; |
| - (void)clearCachedStatements; |
| - (void)closeOpenResultSets; |
| |
| // 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)update:(NSString*)sql error:(NSError**)outErr bind:(id)bindArgs, ...; |
| - (BOOL)executeUpdate:(NSString*)sql, ...; |
| - (BOOL)executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray *)arguments; |
| - (BOOL)executeUpdate:(NSString*)sql error:(NSError**)outErr withArgumentsInArray:(NSArray*)arrayArgs orVAList:(va_list)args; // you shouldn't ever need to call this. use the previous two instead. |
| |
| - (FMResultSet *)executeQuery:(NSString*)sql, ...; |
| - (FMResultSet *)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray *)arguments; |
| - (FMResultSet *)executeQuery:(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 |
| |