FMDatabase.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. #import <Foundation/Foundation.h>
  2. #import "sqlite3.h"
  3. #import "FMResultSet.h"
  4. #import "FMDatabasePool.h"
  5. @interface FMDatabase : NSObject {
  6. sqlite3* _db;
  7. NSString* _databasePath;
  8. BOOL _logsErrors;
  9. BOOL _crashOnErrors;
  10. BOOL _traceExecution;
  11. BOOL _checkedOut;
  12. BOOL _shouldCacheStatements;
  13. BOOL _isExecutingStatement;
  14. BOOL _inTransaction;
  15. int _busyRetryTimeout;
  16. NSMutableDictionary *_cachedStatements;
  17. NSMutableSet *_openResultSets;
  18. FMDatabasePool *_pool;
  19. NSInteger _poolPopCount;
  20. }
  21. @property (assign) BOOL traceExecution;
  22. @property (assign) BOOL checkedOut;
  23. @property (assign) int busyRetryTimeout;
  24. @property (assign) BOOL crashOnErrors;
  25. @property (assign) BOOL logsErrors;
  26. @property (retain) NSMutableDictionary *cachedStatements;
  27. @property (assign) FMDatabasePool *pool;
  28. + (id)databaseWithPath:(NSString*)inPath;
  29. - (id)initWithPath:(NSString*)inPath;
  30. - (BOOL)open;
  31. #if SQLITE_VERSION_NUMBER >= 3005000
  32. - (BOOL)openWithFlags:(int)flags;
  33. #endif
  34. - (BOOL)close;
  35. - (BOOL)goodConnection;
  36. - (void)clearCachedStatements;
  37. - (void)closeOpenResultSets;
  38. // encryption methods. You need to have purchased the sqlite encryption extensions for these to work.
  39. - (BOOL)setKey:(NSString*)key;
  40. - (BOOL)rekey:(NSString*)key;
  41. - (NSString *)databasePath;
  42. - (NSString*)lastErrorMessage;
  43. - (int)lastErrorCode;
  44. - (BOOL)hadError;
  45. - (NSError*)lastError;
  46. - (sqlite_int64)lastInsertRowId;
  47. - (sqlite3*)sqliteHandle;
  48. - (BOOL)update:(NSString*)sql error:(NSError**)outErr bind:(id)bindArgs, ...;
  49. - (BOOL)executeUpdate:(NSString*)sql, ...;
  50. - (BOOL)executeUpdateWithFormat:(NSString *)format, ...;
  51. - (BOOL)executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray *)arguments;
  52. - (BOOL)executeUpdate:(NSString*)sql withParameterDictionary:(NSDictionary *)arguments;
  53. - (FMResultSet *)executeQuery:(NSString*)sql, ...;
  54. - (FMResultSet *)executeQueryWithFormat:(NSString*)format, ...;
  55. - (FMResultSet *)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray *)arguments;
  56. - (FMResultSet *)executeQuery:(NSString *)sql withParameterDictionary:(NSDictionary *)arguments;
  57. - (BOOL)rollback;
  58. - (BOOL)commit;
  59. - (BOOL)beginTransaction;
  60. - (BOOL)beginDeferredTransaction;
  61. - (BOOL)inTransaction;
  62. - (BOOL)shouldCacheStatements;
  63. - (void)setShouldCacheStatements:(BOOL)value;
  64. #if SQLITE_VERSION_NUMBER >= 3007000
  65. - (BOOL)startSavePointWithName:(NSString*)name error:(NSError**)outErr;
  66. - (BOOL)releaseSavePointWithName:(NSString*)name error:(NSError**)outErr;
  67. - (BOOL)rollbackToSavePointWithName:(NSString*)name error:(NSError**)outErr;
  68. - (NSError*)inSavePoint:(void (^)(BOOL *rollback))block;
  69. #endif
  70. + (BOOL)isSQLiteThreadSafe;
  71. + (NSString*)sqliteLibVersion;
  72. - (int)changes;
  73. - (FMDatabase*)popFromPool;
  74. - (void)pushToPool;
  75. @end
  76. @interface FMStatement : NSObject {
  77. sqlite3_stmt *statement;
  78. NSString *query;
  79. long useCount;
  80. }
  81. @property (assign) long useCount;
  82. @property (retain) NSString *query;
  83. @property (assign) sqlite3_stmt *statement;
  84. - (void)close;
  85. - (void)reset;
  86. @end