summaryrefslogtreecommitdiffstats
path: root/Classes/FMDatabase.h
diff options
context:
space:
mode:
Diffstat (limited to 'Classes/FMDatabase.h')
-rw-r--r--Classes/FMDatabase.h118
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
+