diff options
Diffstat (limited to 'Classes/FMDatabase.h')
-rw-r--r-- | Classes/FMDatabase.h | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/Classes/FMDatabase.h b/Classes/FMDatabase.h new file mode 100644 index 0000000..f125d61 --- /dev/null +++ b/Classes/FMDatabase.h @@ -0,0 +1,118 @@ +#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 + |