mirror of
https://github.com/CocoaLumberjack/CocoaLumberjack.git
synced 2026-06-06 20:18:32 +00:00
94 lines
2.6 KiB
Objective-C
94 lines
2.6 KiB
Objective-C
#import <Foundation/Foundation.h>
|
|
#import "sqlite3.h"
|
|
|
|
#ifndef __has_feature // Optional.
|
|
#define __has_feature(x) 0 // Compatibility with non-clang compilers.
|
|
#endif
|
|
|
|
#ifndef NS_RETURNS_NOT_RETAINED
|
|
#if __has_feature(attribute_ns_returns_not_retained)
|
|
#define NS_RETURNS_NOT_RETAINED __attribute__((ns_returns_not_retained))
|
|
#else
|
|
#define NS_RETURNS_NOT_RETAINED
|
|
#endif
|
|
#endif
|
|
|
|
@class FMDatabase;
|
|
@class FMStatement;
|
|
|
|
@interface FMResultSet : NSObject {
|
|
FMDatabase *parentDB;
|
|
FMStatement *statement;
|
|
|
|
NSString *query;
|
|
NSMutableDictionary *columnNameToIndexMap;
|
|
BOOL columnNamesSetup;
|
|
}
|
|
|
|
|
|
+ (id)resultSetWithStatement:(FMStatement *)statement usingParentDatabase:(FMDatabase*)aDB;
|
|
|
|
- (void)close;
|
|
|
|
- (NSString *)query;
|
|
- (void)setQuery:(NSString *)value;
|
|
|
|
- (FMStatement *)statement;
|
|
- (void)setStatement:(FMStatement *)value;
|
|
|
|
- (void)setParentDB:(FMDatabase *)newDb;
|
|
|
|
- (BOOL)next;
|
|
- (BOOL)hasAnotherRow;
|
|
|
|
- (int)columnIndexForName:(NSString*)columnName;
|
|
- (NSString*)columnNameForIndex:(int)columnIdx;
|
|
|
|
- (int)intForColumn:(NSString*)columnName;
|
|
- (int)intForColumnIndex:(int)columnIdx;
|
|
|
|
- (long)longForColumn:(NSString*)columnName;
|
|
- (long)longForColumnIndex:(int)columnIdx;
|
|
|
|
- (long long int)longLongIntForColumn:(NSString*)columnName;
|
|
- (long long int)longLongIntForColumnIndex:(int)columnIdx;
|
|
|
|
- (BOOL)boolForColumn:(NSString*)columnName;
|
|
- (BOOL)boolForColumnIndex:(int)columnIdx;
|
|
|
|
- (double)doubleForColumn:(NSString*)columnName;
|
|
- (double)doubleForColumnIndex:(int)columnIdx;
|
|
|
|
- (NSString*)stringForColumn:(NSString*)columnName;
|
|
- (NSString*)stringForColumnIndex:(int)columnIdx;
|
|
|
|
- (NSDate*)dateForColumn:(NSString*)columnName;
|
|
- (NSDate*)dateForColumnIndex:(int)columnIdx;
|
|
|
|
- (NSData*)dataForColumn:(NSString*)columnName;
|
|
- (NSData*)dataForColumnIndex:(int)columnIdx;
|
|
|
|
- (const unsigned char *)UTF8StringForColumnIndex:(int)columnIdx;
|
|
- (const unsigned char *)UTF8StringForColumnName:(NSString*)columnName;
|
|
|
|
// returns one of NSNumber, NSString, NSData, or NSNull
|
|
- (id)objectForColumnIndex:(int)columnIdx;
|
|
- (id)objectForColumnName:(NSString*)columnName;
|
|
|
|
/*
|
|
If you are going to use this data after you iterate over the next row, or after you close the
|
|
result set, make sure to make a copy of the data first (or just use dataForColumn:/dataForColumnIndex:)
|
|
If you don't, you're going to be in a world of hurt when you try and use the data.
|
|
*/
|
|
- (NSData*)dataNoCopyForColumn:(NSString*)columnName NS_RETURNS_NOT_RETAINED;
|
|
- (NSData*)dataNoCopyForColumnIndex:(int)columnIdx NS_RETURNS_NOT_RETAINED;
|
|
|
|
|
|
- (BOOL)columnIndexIsNull:(int)columnIdx;
|
|
- (BOOL)columnIsNull:(NSString*)columnName;
|
|
|
|
- (void)kvcMagic:(id)object;
|
|
- (NSDictionary *)resultDict;
|
|
|
|
@end
|