![]() |
Ignite Tools
|
00001 #import <Foundation/Foundation.h> 00002 #import "sqlite3.h" 00003 00004 @class UA_FMDatabase; 00005 @class UA_FMStatement; 00006 00007 @interface UA_FMResultSet : NSObject { 00008 UA_FMDatabase *parentDB; 00009 UA_FMStatement *statement; 00010 00011 NSString *query; 00012 NSMutableDictionary *columnNameToIndexMap; 00013 BOOL columnNamesSetup; 00014 } 00015 00016 00017 + (id) resultSetWithStatement:(UA_FMStatement *)statement usingParentDatabase:(UA_FMDatabase*)aDB; 00018 00019 - (void) close; 00020 00021 - (NSString *)query; 00022 - (void)setQuery:(NSString *)value; 00023 00024 - (UA_FMStatement *)statement; 00025 - (void)setStatement:(UA_FMStatement *)value; 00026 00027 - (void)setParentDB:(UA_FMDatabase *)newDb; 00028 00029 - (BOOL) next; 00030 - (BOOL) hasAnotherRow; 00031 00032 - (int) columnIndexForName:(NSString*)columnName; 00033 - (NSString*) columnNameForIndex:(int)columnIdx; 00034 00035 - (int) intForColumn:(NSString*)columnName; 00036 - (int) intForColumnIndex:(int)columnIdx; 00037 00038 - (long) longForColumn:(NSString*)columnName; 00039 - (long) longForColumnIndex:(int)columnIdx; 00040 00041 - (long long int) longLongIntForColumn:(NSString*)columnName; 00042 - (long long int) longLongIntForColumnIndex:(int)columnIdx; 00043 00044 - (BOOL) boolForColumn:(NSString*)columnName; 00045 - (BOOL) boolForColumnIndex:(int)columnIdx; 00046 00047 - (double) doubleForColumn:(NSString*)columnName; 00048 - (double) doubleForColumnIndex:(int)columnIdx; 00049 00050 - (NSString*) stringForColumn:(NSString*)columnName; 00051 - (NSString*) stringForColumnIndex:(int)columnIdx; 00052 00053 - (NSDate*) dateForColumn:(NSString*)columnName; 00054 - (NSDate*) dateForColumnIndex:(int)columnIdx; 00055 00056 - (NSData*) dataForColumn:(NSString*)columnName; 00057 - (NSData*) dataForColumnIndex:(int)columnIdx; 00058 00059 - (const unsigned char *) UTF8StringForColumnIndex:(int)columnIdx; 00060 - (const unsigned char *) UTF8StringForColumnName:(NSString*)columnName; 00061 00062 /* 00063 If you are going to use this data after you iterate over the next row, or after you close the 00064 result set, make sure to make a copy of the data first (or just use dataForColumn:/dataForColumnIndex:) 00065 If you don't, you're going to be in a world of hurt when you try and use the data. 00066 */ 00067 - (NSData*) dataNoCopyForColumn:(NSString*)columnName; 00068 - (NSData*) dataNoCopyForColumnIndex:(int)columnIdx; 00069 00070 - (BOOL) columnIndexIsNull:(int)columnIdx; 00071 - (BOOL) columnIsNull:(NSString*)columnName; 00072 00073 - (void) kvcMagic:(id)object; 00074 00075 @end