2 // FMDatabaseAdditions.m
5 // Created by August Mueller on 10/30/05.
6 // Copyright 2005 Flying Meat Inc.. All rights reserved.
10 #import "FMDatabaseAdditions.h"
12 @implementation FMDatabase (FMDatabaseAdditions)
14 #define RETURN_RESULT_FOR_QUERY_WITH_SELECTOR(type, sel) \
16 va_start(args, query); \
17 FMResultSet *resultSet = [self executeQuery:query arguments:args]; \
19 if (![resultSet next]) { return (type)0; } \
20 type ret = [resultSet sel:0]; \
22 [resultSet setParentDB:nil]; \
26 - (NSString*)stringForQuery:(NSString*)query, ...; {
27 RETURN_RESULT_FOR_QUERY_WITH_SELECTOR(NSString *, stringForColumnIndex);
30 - (int)intForQuery:(NSString*)query, ...; {
31 RETURN_RESULT_FOR_QUERY_WITH_SELECTOR(int, intForColumnIndex);
34 - (long)longForQuery:(NSString*)query, ...; {
35 RETURN_RESULT_FOR_QUERY_WITH_SELECTOR(long, longForColumnIndex);
38 - (BOOL)boolForQuery:(NSString*)query, ...; {
39 RETURN_RESULT_FOR_QUERY_WITH_SELECTOR(BOOL, boolForColumnIndex);
42 - (double)doubleForQuery:(NSString*)query, ...; {
43 RETURN_RESULT_FOR_QUERY_WITH_SELECTOR(double, doubleForColumnIndex);
46 - (NSData*)dataForQuery:(NSString*)query, ...; {
47 RETURN_RESULT_FOR_QUERY_WITH_SELECTOR(NSData *, dataForColumnIndex);