Added dataNoCopyForColumn: and dataNoCopyForColumnIndex: to FMResultSet.
[fmdb.git] / src / FMDatabase.h
blob9b032cf452ab6340b7d00abbf6ffcdfbd063a57d
1 #import <Foundation/Foundation.h>
2 #import "sqlite3.h"
3 #import "FMResultSet.h"
5 @interface FMDatabase : NSObject
7 sqlite3* db;
8 NSString* databasePath;
9 BOOL logsErrors;
10 BOOL crashOnErrors;
11 BOOL inUse;
12 BOOL inTransaction;
13 BOOL traceExecution;
14 BOOL checkedOut;
15 int busyRetryTimeout;
16 BOOL shouldCacheStatements;
17 NSMutableDictionary *cachedStatements;
21 + (id)databaseWithPath:(NSString*)inPath;
22 - (id)initWithPath:(NSString*)inPath;
24 - (BOOL) open;
25 - (void) close;
26 - (BOOL) goodConnection;
27 - (void) clearCachedStatements;
29 // encryption methods. You need to have purchased the sqlite encryption extensions for these to work.
30 - (BOOL) setKey:(NSString*)key;
31 - (BOOL) rekey:(NSString*)key;
34 - (NSString *) databasePath;
36 - (NSString*) lastErrorMessage;
38 - (int) lastErrorCode;
39 - (BOOL) hadError;
40 - (sqlite_int64) lastInsertRowId;
42 - (sqlite3*) sqliteHandle;
44 - (BOOL) executeUpdate:(NSString *)sql arguments:(va_list)args;
45 - (BOOL) executeUpdate:(NSString*)sql, ...;
47 - (id) executeQuery:(NSString *)sql arguments:(va_list)args;
48 - (id) executeQuery:(NSString*)sql, ...;
50 - (BOOL) rollback;
51 - (BOOL) commit;
52 - (BOOL) beginTransaction;
53 - (BOOL) beginDeferredTransaction;
55 - (BOOL)logsErrors;
56 - (void)setLogsErrors:(BOOL)flag;
58 - (BOOL)crashOnErrors;
59 - (void)setCrashOnErrors:(BOOL)flag;
61 - (BOOL)inUse;
62 - (void)setInUse:(BOOL)value;
64 - (BOOL)inTransaction;
65 - (void)setInTransaction:(BOOL)flag;
67 - (BOOL)traceExecution;
68 - (void)setTraceExecution:(BOOL)flag;
70 - (BOOL)checkedOut;
71 - (void)setCheckedOut:(BOOL)flag;
73 - (int)busyRetryTimeout;
74 - (void)setBusyRetryTimeout:(int)newBusyRetryTimeout;
76 - (BOOL)shouldCacheStatements;
77 - (void)setShouldCacheStatements:(BOOL)value;
79 - (NSMutableDictionary *)cachedStatements;
80 - (void)setCachedStatements:(NSMutableDictionary *)value;
83 + (NSString*) sqliteLibVersion;
87 @end
89 @interface FMStatement : NSObject {
90 sqlite3_stmt *statement;
91 NSString *query;
92 long useCount;
96 - (void) close;
97 - (void) reset;
99 - (sqlite3_stmt *)statement;
100 - (void)setStatement:(sqlite3_stmt *)value;
102 - (NSString *)query;
103 - (void)setQuery:(NSString *)value;
105 - (long)useCount;
106 - (void)setUseCount:(long)value;
110 @end