Skip to content

Commit

Permalink
Formatting updates, along with a new method for getting a dictionary …
Browse files Browse the repository at this point in the history
…back from a result set.
  • Loading branch information
ccgus committed Aug 24, 2010
1 parent 0525096 commit 83e3eee
Show file tree
Hide file tree
Showing 6 changed files with 192 additions and 135 deletions.
4 changes: 4 additions & 0 deletions CHANGES_AND_TODO_LIST.txt
Expand Up @@ -3,6 +3,10 @@ Zip, nada, zilch. Got any ideas?

If you would like to contribute some code- awesome! I just ask that you make it conform to the coding conventions already set in here, and to add a couple of tests for your new code to fmdb.m. And of course, the code should be of general use to more than just a couple of folks. Send your patches to gus@flyingmeat.com.

2010.08.24:
Added resultDict to FMResultSet, which returns a dictionary of column values. Thanks to Pascal Pfiffner for the patch!
Cleaned up some formatting.

2010.06.21:

Changed up FMDatabase's close method to return a boolean, and fixed a compiler warning when compiling in 64bit land. Thanks to Jens Alfke for the patches!
Expand Down
1 change: 1 addition & 0 deletions CONTRIBUTORS.txt
Expand Up @@ -21,5 +21,6 @@ Dan Wright
OZLB
Matt Stevens
Jens Alfke
Pascal Pfiffner

Aaaaannnd, Gus Mueller (that's me!)
53 changes: 26 additions & 27 deletions src/FMDatabase.h
Expand Up @@ -21,41 +21,41 @@
+ (id)databaseWithPath:(NSString*)inPath;
- (id)initWithPath:(NSString*)inPath;

- (BOOL) open;
- (BOOL)open;
#if SQLITE_VERSION_NUMBER >= 3005000
- (BOOL) openWithFlags:(int)flags;
- (BOOL)openWithFlags:(int)flags;
#endif
- (BOOL) close;
- (BOOL) goodConnection;
- (void) clearCachedStatements;
- (BOOL)close;
- (BOOL)goodConnection;
- (void)clearCachedStatements;

// encryption methods. You need to have purchased the sqlite encryption extensions for these to work.
- (BOOL) setKey:(NSString*)key;
- (BOOL) rekey:(NSString*)key;
- (BOOL)setKey:(NSString*)key;
- (BOOL)rekey:(NSString*)key;


- (NSString *) databasePath;
- (NSString *)databasePath;

- (NSString*) lastErrorMessage;
- (NSString*)lastErrorMessage;

- (int) lastErrorCode;
- (BOOL) hadError;
- (sqlite_int64) lastInsertRowId;
- (int)lastErrorCode;
- (BOOL)hadError;
- (sqlite_int64)lastInsertRowId;

- (sqlite3*) sqliteHandle;
- (sqlite3*)sqliteHandle;

- (BOOL) executeUpdate:(NSString*)sql, ...;
- (BOOL) executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray *)arguments;
- (id) executeQuery:(NSString *)sql withArgumentsInArray:(NSArray*)arrayArgs orVAList:(va_list)args; // you shouldn't ever need to call this. use the previous two instead.
- (BOOL)executeUpdate:(NSString*)sql, ...;
- (BOOL)executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray *)arguments;
- (id)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray*)arrayArgs orVAList:(va_list)args; // you shouldn't ever need to call this. use the previous two instead.

- (id) executeQuery:(NSString*)sql, ...;
- (id) executeQuery:(NSString *)sql withArgumentsInArray:(NSArray *)arguments;
- (BOOL) executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray*)arrayArgs orVAList:(va_list)args; // you shouldn't ever need to call this. use the previous two instead.
- (id)executeQuery:(NSString*)sql, ...;
- (id)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray *)arguments;
- (BOOL)executeUpdate:(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)rollback;
- (BOOL)commit;
- (BOOL)beginTransaction;
- (BOOL)beginDeferredTransaction;

- (BOOL)logsErrors;
- (void)setLogsErrors:(BOOL)flag;
Expand Down Expand Up @@ -85,8 +85,7 @@
- (void)setCachedStatements:(NSMutableDictionary *)value;


+ (NSString*) sqliteLibVersion;

+ (NSString*)sqliteLibVersion;

- (int)changes;

Expand All @@ -99,8 +98,8 @@
}


- (void) close;
- (void) reset;
- (void)close;
- (void)reset;

- (sqlite3_stmt *)statement;
- (void)setStatement:(sqlite3_stmt *)value;
Expand Down
68 changes: 34 additions & 34 deletions src/FMDatabase.m
Expand Up @@ -30,19 +30,19 @@ - (void)dealloc {
[super dealloc];
}

+ (NSString*) sqliteLibVersion {
+ (NSString*)sqliteLibVersion {
return [NSString stringWithFormat:@"%s", sqlite3_libversion()];
}

- (NSString *) databasePath {
- (NSString *)databasePath {
return databasePath;
}

- (sqlite3*) sqliteHandle {
- (sqlite3*)sqliteHandle {
return db;
}

- (BOOL) open {
- (BOOL)open {
int err = sqlite3_open([databasePath fileSystemRepresentation], &db );
if(err != SQLITE_OK) {
NSLog(@"error opening!: %d", err);
Expand All @@ -53,7 +53,7 @@ - (BOOL) open {
}

#if SQLITE_VERSION_NUMBER >= 3005000
- (BOOL) openWithFlags:(int)flags {
- (BOOL)openWithFlags:(int)flags {
int err = sqlite3_open_v2([databasePath fileSystemRepresentation], &db, flags, NULL /* Name of VFS module to use */);
if(err != SQLITE_OK) {
NSLog(@"error opening!: %d", err);
Expand All @@ -64,7 +64,7 @@ - (BOOL) openWithFlags:(int)flags {
#endif


- (BOOL) close {
- (BOOL)close {

[self clearCachedStatements];

Expand Down Expand Up @@ -97,7 +97,7 @@ - (BOOL) close {
return YES;
}

- (void) clearCachedStatements {
- (void)clearCachedStatements {

NSEnumerator *e = [cachedStatements objectEnumerator];
FMStatement *cachedStmt;
Expand All @@ -109,11 +109,11 @@ - (void) clearCachedStatements {
[cachedStatements removeAllObjects];
}

- (FMStatement*) cachedStatementForQuery:(NSString*)query {
- (FMStatement*)cachedStatementForQuery:(NSString*)query {
return [cachedStatements objectForKey:query];
}

- (void) setCachedStatement:(FMStatement*)statement forQuery:(NSString*)query {
- (void)setCachedStatement:(FMStatement*)statement forQuery:(NSString*)query {
//NSLog(@"setting query: %@", query);
query = [query copy]; // in case we got handed in a mutable string...
[statement setQuery:query];
Expand All @@ -122,7 +122,7 @@ - (void) setCachedStatement:(FMStatement*)statement forQuery:(NSString*)query {
}


- (BOOL) rekey:(NSString*)key {
- (BOOL)rekey:(NSString*)key {
#ifdef SQLITE_HAS_CODEC
if (!key) {
return NO;
Expand All @@ -141,7 +141,7 @@ - (BOOL) rekey:(NSString*)key {
#endif
}

- (BOOL) setKey:(NSString*)key {
- (BOOL)setKey:(NSString*)key {
#ifdef SQLITE_HAS_CODEC
if (!key) {
return NO;
Expand All @@ -155,7 +155,7 @@ - (BOOL) setKey:(NSString*)key {
#endif
}

- (BOOL) goodConnection {
- (BOOL)goodConnection {

if (!db) {
return NO;
Expand All @@ -171,29 +171,29 @@ - (BOOL) goodConnection {
return NO;
}

- (void) compainAboutInUse {
- (void)compainAboutInUse {
NSLog(@"The FMDatabase %@ is currently in use.", self);

if (crashOnErrors) {
NSAssert1(false, @"The FMDatabase %@ is currently in use.", self);
}
}

- (NSString*) lastErrorMessage {
- (NSString*)lastErrorMessage {
return [NSString stringWithUTF8String:sqlite3_errmsg(db)];
}

- (BOOL) hadError {
- (BOOL)hadError {
int lastErrCode = [self lastErrorCode];

return (lastErrCode > SQLITE_OK && lastErrCode < SQLITE_ROW);
}

- (int) lastErrorCode {
- (int)lastErrorCode {
return sqlite3_errcode(db);
}

- (sqlite_int64) lastInsertRowId {
- (sqlite_int64)lastInsertRowId {

if (inUse) {
[self compainAboutInUse];
Expand All @@ -208,7 +208,7 @@ - (sqlite_int64) lastInsertRowId {
return ret;
}

- (void) bindObject:(id)obj toColumn:(int)idx inStatement:(sqlite3_stmt*)pStmt; {
- (void)bindObject:(id)obj toColumn:(int)idx inStatement:(sqlite3_stmt*)pStmt; {

if ((!obj) || ((NSNull *)obj == [NSNull null])) {
sqlite3_bind_null(pStmt, idx);
Expand Down Expand Up @@ -250,7 +250,7 @@ - (void) bindObject:(id)obj toColumn:(int)idx inStatement:(sqlite3_stmt*)pStmt;
}
}

- (id) executeQuery:(NSString *)sql withArgumentsInArray:(NSArray*)arrayArgs orVAList:(va_list)args {
- (id)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray*)arrayArgs orVAList:(va_list)args {

if (inUse) {
[self compainAboutInUse];
Expand Down Expand Up @@ -370,7 +370,7 @@ - (id) executeQuery:(NSString *)sql withArgumentsInArray:(NSArray*)arrayArgs orV
return rs;
}

- (id) executeQuery:(NSString*)sql, ... {
- (id)executeQuery:(NSString*)sql, ... {
va_list args;
va_start(args, sql);

Expand All @@ -380,11 +380,11 @@ - (id) executeQuery:(NSString*)sql, ... {
return result;
}

- (id) executeQuery:(NSString *)sql withArgumentsInArray:(NSArray *)arguments {
- (id)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray *)arguments {
return [self executeQuery:sql withArgumentsInArray:arguments orVAList:nil];
}

- (BOOL) executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray*)arrayArgs orVAList:(va_list)args {
- (BOOL)executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray*)arrayArgs orVAList:(va_list)args {

if (inUse) {
[self compainAboutInUse];
Expand Down Expand Up @@ -550,7 +550,7 @@ - (BOOL) executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray*)arrayArgs o
}


- (BOOL) executeUpdate:(NSString*)sql, ... {
- (BOOL)executeUpdate:(NSString*)sql, ... {
va_list args;
va_start(args, sql);

Expand All @@ -562,7 +562,7 @@ - (BOOL) executeUpdate:(NSString*)sql, ... {



- (BOOL) executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray *)arguments {
- (BOOL)executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray *)arguments {
return [self executeUpdate:sql withArgumentsInArray:arguments orVAList:nil];
}

Expand All @@ -572,31 +572,31 @@ - (id) executeUpdate:(NSString *)sql arguments:(va_list)args {
}
*/

- (BOOL) rollback {
- (BOOL)rollback {
BOOL b = [self executeUpdate:@"ROLLBACK TRANSACTION;"];
if (b) {
inTransaction = NO;
}
return b;
}

- (BOOL) commit {
- (BOOL)commit {
BOOL b = [self executeUpdate:@"COMMIT TRANSACTION;"];
if (b) {
inTransaction = NO;
}
return b;
}

- (BOOL) beginDeferredTransaction {
- (BOOL)beginDeferredTransaction {
BOOL b = [self executeUpdate:@"BEGIN DEFERRED TRANSACTION;"];
if (b) {
inTransaction = YES;
}
return b;
}

- (BOOL) beginTransaction {
- (BOOL)beginTransaction {
BOOL b = [self executeUpdate:@"BEGIN EXCLUSIVE TRANSACTION;"];
if (b) {
inTransaction = YES;
Expand All @@ -622,7 +622,7 @@ - (BOOL)inUse {
return inUse || inTransaction;
}

- (void) setInUse:(BOOL)b {
- (void)setInUse:(BOOL)b {
inUse = b;
}

Expand Down Expand Up @@ -702,28 +702,28 @@ - (void)dealloc {
}


- (void) close {
- (void)close {
if (statement) {
sqlite3_finalize(statement);
statement = 0x00;
}
}

- (void) reset {
- (void)reset {
if (statement) {
sqlite3_reset(statement);
}
}

- (sqlite3_stmt *) statement {
- (sqlite3_stmt *)statement {
return statement;
}

- (void)setStatement:(sqlite3_stmt *)value {
statement = value;
}

- (NSString *) query {
- (NSString *)query {
return query;
}

Expand All @@ -744,7 +744,7 @@ - (void)setUseCount:(long)value {
}
}

- (NSString*) description {
- (NSString*)description {
return [NSString stringWithFormat:@"%@ %d hit(s) for query %@", [super description], useCount, query];
}

Expand Down

0 comments on commit 83e3eee

Please sign in to comment.