aboutsummaryrefslogtreecommitdiffstats
path: root/CMMCPResult.m
diff options
context:
space:
mode:
Diffstat (limited to 'CMMCPResult.m')
-rw-r--r--CMMCPResult.m211
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