diff options
author | mltownsend <mltownsend@gmail.com> | 2008-11-10 19:56:30 +0000 |
---|---|---|
committer | mltownsend <mltownsend@gmail.com> | 2008-11-10 19:56:30 +0000 |
commit | c8146f9c28da66f02d47537e505a70725fb0c2b4 (patch) | |
tree | f967e1cadc654ea262f5fa7402572fdc2482d60d /CMMCPResult.m | |
parent | 87173093000bc5c36962451cc3e58c9aaac5ab50 (diff) | |
download | sequelpro-c8146f9c28da66f02d47537e505a70725fb0c2b4.tar.gz sequelpro-c8146f9c28da66f02d47537e505a70725fb0c2b4.tar.bz2 sequelpro-c8146f9c28da66f02d47537e505a70725fb0c2b4.zip |
New XCode project
Diffstat (limited to 'CMMCPResult.m')
-rw-r--r-- | CMMCPResult.m | 211 |
1 files changed, 101 insertions, 110 deletions
diff --git a/CMMCPResult.m b/CMMCPResult.m index ff5c6c88..a41ce84d 100644 --- a/CMMCPResult.m +++ b/CMMCPResult.m @@ -32,123 +32,114 @@ modified version for use with sequel-pro "*/ { - MYSQL_ROW theRow; - unsigned long *theLengths; - MYSQL_FIELD *theField; - int i; - id theReturn; + MYSQL_ROW theRow; + unsigned long *theLengths; + MYSQL_FIELD *theField; + int i; + id theReturn; - if (mResult == NULL) { -// If there is no results, returns nil, as after the last row... - return nil; - } + if (mResult == NULL) { + // If there is no results, returns nil, as after the last row... + return nil; + } - theRow = mysql_fetch_row(mResult); - if (theRow == NULL) { - return nil; - } + theRow = mysql_fetch_row(mResult); + if (theRow == NULL) { + return nil; + } - switch (aType) { - case MCPTypeArray: - theReturn = [NSMutableArray arrayWithCapacity:mNumOfFields]; - break; - case MCPTypeDictionary: - if (mNames == nil) { - [self fetchFieldNames]; - } - theReturn = [NSMutableDictionary dictionaryWithCapacity:mNumOfFields]; - break; - default : - NSLog (@"Unknown type : %d, will return an Array!\n", aType); - theReturn = [NSMutableArray arrayWithCapacity:mNumOfFields]; - break; - } + switch (aType) { + case MCPTypeArray: + theReturn = [NSMutableArray arrayWithCapacity:mNumOfFields]; + break; + case MCPTypeDictionary: + if (mNames == nil) { + [self fetchFieldNames]; + } + theReturn = [NSMutableDictionary dictionaryWithCapacity:mNumOfFields]; + break; + default : + NSLog (@"Unknown type : %d, will return an Array!\n", aType); + theReturn = [NSMutableArray arrayWithCapacity:mNumOfFields]; + break; + } - theLengths = mysql_fetch_lengths(mResult); - theField = mysql_fetch_fields(mResult); - for (i=0; i<mNumOfFields; i++) { - id theCurrentObj; + theLengths = mysql_fetch_lengths(mResult); + theField = mysql_fetch_fields(mResult); + + for (i=0; i<mNumOfFields; i++) { + id theCurrentObj; - if (theRow[i] == NULL) { - theCurrentObj = [NSNull null]; - } - else { - char *theData = calloc(sizeof(char),theLengths[i]+1); -// char *theUselLess; - memcpy(theData, theRow[i],theLengths[i]); - theData[theLengths[i]] = '\0'; + if (theRow[i] == NULL) { + theCurrentObj = [NSNull null]; + } + else { + char *theData = calloc(sizeof(char),theLengths[i]+1); + // char *theUselLess; + memcpy(theData, theRow[i],theLengths[i]); + theData[theLengths[i]] = '\0'; - switch (theField[i].type) { - case FIELD_TYPE_TINY: - case FIELD_TYPE_SHORT: - case FIELD_TYPE_INT24: - case FIELD_TYPE_LONG: - case FIELD_TYPE_LONGLONG: - case FIELD_TYPE_DECIMAL: - case FIELD_TYPE_FLOAT: - case FIELD_TYPE_DOUBLE: - case FIELD_TYPE_NEW_DECIMAL: - theCurrentObj = [self stringWithCString:theData]; - break; - case FIELD_TYPE_TIMESTAMP: - case FIELD_TYPE_DATE: - case FIELD_TYPE_TIME: - case FIELD_TYPE_DATETIME: - case FIELD_TYPE_YEAR: - theCurrentObj = [self stringWithCString:theData]; - break; - case FIELD_TYPE_VAR_STRING: - case FIELD_TYPE_STRING: - theCurrentObj = [self stringWithCString:theData]; - break; - case FIELD_TYPE_TINY_BLOB: - case FIELD_TYPE_BLOB: - case FIELD_TYPE_MEDIUM_BLOB: - case FIELD_TYPE_LONG_BLOB: - theCurrentObj = [NSData dataWithBytes:theData length:theLengths[i]]; - if (!(theField[i].flags & BINARY_FLAG)) { // It is TEXT and NOT BLOB... - theCurrentObj = [self stringWithText:theCurrentObj]; - } -//#warning Should check for TEXT (using theField[i].flag BINARY_FLAG) - break; - case FIELD_TYPE_SET: - theCurrentObj = [self stringWithCString:theData]; - break; - case FIELD_TYPE_ENUM: - theCurrentObj = [self stringWithCString:theData]; - break; - case FIELD_TYPE_NULL: - theCurrentObj = [NSNull null]; - break; - case FIELD_TYPE_NEWDATE: -// Don't know what the format for this type is... - theCurrentObj = [self stringWithCString:theData]; - break; - default: - NSLog (@"in fetchRowAsDictionary : Unknown type : %d for column %d, send back a NSData object", (int)theField[i].type, (int)i); - theCurrentObj = [NSData dataWithBytes:theData length:theLengths[i]]; - break; - } - free(theData); -// Some of the creators return nil object... - if (theCurrentObj == nil) { - theCurrentObj = [NSNull null]; - } - } - switch (aType) { - case MCPTypeArray : - [theReturn addObject:theCurrentObj]; - break; - case MCPTypeDictionary : - [theReturn setObject:theCurrentObj forKey:[mNames objectAtIndex:i]]; - break; - default : - [theReturn addObject:theCurrentObj]; - break; - } - } + switch (theField[i].type) { + case FIELD_TYPE_TINY: + case FIELD_TYPE_SHORT: + case FIELD_TYPE_INT24: + case FIELD_TYPE_LONG: + case FIELD_TYPE_LONGLONG: + case FIELD_TYPE_DECIMAL: + case FIELD_TYPE_FLOAT: + case FIELD_TYPE_DOUBLE: + case FIELD_TYPE_NEW_DECIMAL: + case FIELD_TYPE_TIMESTAMP: + case FIELD_TYPE_DATE: + case FIELD_TYPE_TIME: + case FIELD_TYPE_DATETIME: + case FIELD_TYPE_YEAR: + case FIELD_TYPE_VAR_STRING: + case FIELD_TYPE_STRING: + case FIELD_TYPE_SET: + case FIELD_TYPE_ENUM: + case FIELD_TYPE_NEWDATE: // Don't know what the format for this type is... + theCurrentObj = [self stringWithCString:theData]; + break; + case FIELD_TYPE_TINY_BLOB: + case FIELD_TYPE_BLOB: + case FIELD_TYPE_MEDIUM_BLOB: + case FIELD_TYPE_LONG_BLOB: + theCurrentObj = [NSData dataWithBytes:theData length:theLengths[i]]; + if (!(theField[i].flags & BINARY_FLAG)) { // It is TEXT and NOT BLOB... + theCurrentObj = [self stringWithText:theCurrentObj]; + } //#warning Should check for TEXT (using theField[i].flag BINARY_FLAG) + break; - return theReturn; + case FIELD_TYPE_NULL: + theCurrentObj = [NSNull null]; + break; + + default: + NSLog (@"in fetchRowAsType : Unknown type : %d for column %d, send back a NSData object", (int)theField[i].type, (int)i); + theCurrentObj = [NSData dataWithBytes:theData length:theLengths[i]]; + break; + } + + free(theData); + // Some of the creators return nil object... + if (theCurrentObj == nil) { + theCurrentObj = [NSNull null]; + } + } + + switch (aType) { + case MCPTypeDictionary : + [theReturn setObject:theCurrentObj forKey:[mNames objectAtIndex:i]]; + break; + case MCPTypeArray : + default : + [theReturn addObject:theCurrentObj]; + break; + } + } + + return theReturn; } @end |