Some changes to make Clang's static analysis happy
[fmdb.git] / src / FMDatabaseAdditions.m
bloba993b7e8336ed94d4bb25f57b465e79b6c73af4e
1 //
2 //  FMDatabaseAdditions.m
3 //  fmkit
4 //
5 //  Created by August Mueller on 10/30/05.
6 //  Copyright 2005 Flying Meat Inc.. All rights reserved.
7 //
9 #import "FMDatabase.h"
10 #import "FMDatabaseAdditions.h"
12 @implementation FMDatabase (FMDatabaseAdditions)
14 #define RETURN_RESULT_FOR_QUERY_WITH_SELECTOR(type, sel)             \
15 va_list args;                                                        \
16 va_start(args, query);                                               \
17 FMResultSet *resultSet = [self executeQuery:query arguments:args];   \
18 va_end(args);                                                        \
19 if (![resultSet next]) { return (type)0; }                           \
20 type ret = [resultSet sel:0];                                        \
21 [resultSet close];                                                   \
22 [resultSet setParentDB:nil];                                         \
23 return ret;
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);
50 @end