aboutsummaryrefslogtreecommitdiffstats
path: root/Frameworks/MCPKit/MCPFoundationKit/MCPResultPlus.m
diff options
context:
space:
mode:
Diffstat (limited to 'Frameworks/MCPKit/MCPFoundationKit/MCPResultPlus.m')
-rw-r--r--Frameworks/MCPKit/MCPFoundationKit/MCPResultPlus.m188
1 files changed, 0 insertions, 188 deletions
diff --git a/Frameworks/MCPKit/MCPFoundationKit/MCPResultPlus.m b/Frameworks/MCPKit/MCPFoundationKit/MCPResultPlus.m
deleted file mode 100644
index dbf9d070..00000000
--- a/Frameworks/MCPKit/MCPFoundationKit/MCPResultPlus.m
+++ /dev/null
@@ -1,188 +0,0 @@
-//
-// $Id$
-//
-// MCPResultPlus.m
-// MCPKit
-//
-// Created by Serge Cohen (serge.cohen@m4x.org) on 03/06/2002.
-// Copyright (c) 2001 Serge Cohen. All rights reserved.
-//
-// Forked by the Sequel Pro team (sequelpro.com), April 2009
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-// More info at <http://mysql-cocoa.sourceforge.net/>
-// More info at <http://code.google.com/p/sequel-pro/>
-
-#import "MCPResultPlus.h"
-
-/**
- * This Category is provided to get shortcuts reformat the table obtained by a MCPResult
- * (fetching a column, a 2D array...).
- */
-@implementation MCPResult (MCPResultPlus)
-
-/**
- * Getting a complete column into a NSArray (1D). The index starts from 0 (first column).
- *
- * The index 0 of the returned array always correspond to the first row (ie: returned NSArray is indexed
- * by row number), the read position is restored after to it's initial position after the read.
- */
-- (NSArray *)fetchColAtIndex:(NSUInteger)col
-{
- NSMutableArray *theCol = [NSMutableArray arrayWithCapacity:(NSUInteger)[self numOfRows]];
- MYSQL_ROW_OFFSET thePosition;
- NSArray *theRow;
-
- if ((mResult == NULL) || ([self numOfRows] == 0)) {
- // If there is no results, returns nil.
- return nil;
- }
- if (col >= mNumOfFields) {
- // Bad column number
- NSLog (@"The index : %ld is not within the range 0 - %ld\n", (long)col, (long)mNumOfFields);
- return nil;
- }
-
- thePosition = mysql_row_tell(mResult);
-
- [self dataSeek:0];
-
- // One might want to have optimized code here. Maybe in later versions
- while ((theRow = [self fetchRowAsType:MCPTypeArray]))
- {
- [theCol addObject:[theRow objectAtIndex:col]];
- }
-
- // Returning to the proper row
- mysql_row_seek(mResult, thePosition);
-
- return [NSArray arrayWithArray:theCol];
-}
-
-/**
- * The same as !{fetchColAtIndex:}, but the choice of the column is done by it's field name. Indeed it is just
- * a wrapper to !{fetchColAtIndex}.
- */
-- (NSArray *)fetchColWithName:(NSString *)colName
-{
- NSUInteger theCol;
-
- if (mResult == NULL) {
- // If there is no results, returns nil.
- return nil;
- }
-
- if (mNames == nil) {
- [self fetchFieldNames];
- }
-
- if ([mNames indexOfObject:colName] == NSNotFound) {
- NSLog(@"No column have been found with name : %@\n", colName);
- return nil;
- }
-
- theCol = [mNames indexOfObject:colName];
-
- return [self fetchColAtIndex:theCol];
-}
-
-/**
- * Returns the complete result table in a 2D object, which type depends on aType:
- *
- * - !{MCPTypeArray} : a NSArray of rows as NSArray,
- *
- * - !{MCPTypeDictionary} : a NSArray of rows as NSDictionary,
- *
- * - !{MCPTypeFlippedArray} : a NSArray of columns (as NSArray),
- *
- * - !{MCPTypeFlippedDictionary} : a NSDictionary of columns (as NSArray)
- *
- * In any case the read position is restored at the end of the call (hence a fetchRow will get the same row
- * wether this method is called before it or not).
- */
-- (id) fetch2DResultAsType:(MCPReturnType)type;
-{
- id theTable, theVect;
- MYSQL_ROW_OFFSET thePosition;
- NSUInteger i;
-
- if (mResult == NULL) {
- // If there is no results, returns nil.
- return nil;
- }
-
- thePosition = mysql_row_tell(mResult);
-
- [self dataSeek:0];
-
- switch (type)
- {
- case MCPTypeArray :
- theTable = [NSMutableArray arrayWithCapacity:(NSUInteger)[self numOfRows]];
-
- while ((theVect = [self fetchRowAsArray]))
- {
- [theTable addObject:theVect];
- }
-
- theTable = [NSArray arrayWithArray:theTable];
- break;
- case MCPTypeDictionary :
- theTable = [NSMutableArray arrayWithCapacity:(NSUInteger)[self numOfRows]];
-
- while ((theVect = [self fetchRowAsDictionary]))
- {
- [theTable addObject:theVect];
- }
-
- theTable = [NSArray arrayWithArray:theTable];
- break;
- case MCPTypeFlippedArray :
- theTable = [NSMutableArray arrayWithCapacity:mNumOfFields];
-
- for (i=0; i<mNumOfFields; i++)
- {
- [theTable addObject:[self fetchColAtIndex:i]];
- }
-
- theTable = [NSArray arrayWithArray:theTable];
- break;
- case MCPTypeFlippedDictionary :
- theTable = [NSMutableDictionary dictionaryWithCapacity:mNumOfFields];
-
- if (mNames == nil) {
- [self fetchFieldNames];
- }
-
- for (i=0; i<mNumOfFields; i++)
- {
- [theTable setObject:[self fetchColAtIndex:i] forKey:[mNames objectAtIndex:i]];
- }
-
- theTable = [NSDictionary dictionaryWithDictionary:theTable];
- break;
- default :
- NSLog (@"Unknown MCPReturnType : %d; return nil\n", (int)type);
- theTable = nil;
- break;
- }
-
- mysql_row_seek(mResult, thePosition);
-
- return theTable;
-}
-
-@end