SFSQLiteStatement.h
1 /* 2 * Copyright (c) 2017 Apple Inc. All Rights Reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. Please obtain a copy of the License at 10 * http://www.opensource.apple.com/apsl/ and read it before using this 11 * file. 12 * 13 * The Original Code and all software distributed under the License are 14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18 * Please see the License for the specific language governing rights and 19 * limitations under the License. 20 * 21 * @APPLE_LICENSE_HEADER_END@ 22 */ 23 24 #ifndef SECURITY_SFSQLSTATEMENT_H 25 #define SECURITY_SFSQLSTATEMENT_H 1 26 27 #if __OBJC2__ 28 29 #import <Foundation/Foundation.h> 30 #import <sqlite3.h> 31 32 @class SFSQLite; 33 34 @interface SFSQLiteStatement : NSObject { 35 __weak SFSQLite* _SQLite; 36 NSString* _SQL; 37 sqlite3_stmt* _handle; 38 BOOL _reset; 39 NSMutableArray* _temporaryBoundObjects; 40 } 41 42 - (id)initWithSQLite:(SFSQLite *)SQLite SQL:(NSString *)SQL handle:(sqlite3_stmt *)handle; 43 44 @property (nonatomic, readonly, weak) SFSQLite *SQLite; 45 @property (nonatomic, readonly, strong) NSString *SQL; 46 @property (nonatomic, readonly, assign) sqlite3_stmt *handle; 47 48 @property (nonatomic, assign, getter=isReset) BOOL reset; 49 50 - (BOOL)step; 51 - (void)reset; 52 53 - (void)finalizeStatement; 54 55 - (void)bindInt:(SInt32)value atIndex:(NSUInteger)index; 56 - (void)bindInt64:(SInt64)value atIndex:(NSUInteger)index; 57 - (void)bindDouble:(double)value atIndex:(NSUInteger)index; 58 - (void)bindBlob:(NSData *)value atIndex:(NSUInteger)index; 59 - (void)bindText:(NSString *)value atIndex:(NSUInteger)index; 60 - (void)bindNullAtIndex:(NSUInteger)index; 61 - (void)bindValue:(id)value atIndex:(NSUInteger)index; 62 - (void)bindValues:(NSArray *)values; 63 64 - (NSUInteger)columnCount; 65 - (int)columnTypeAtIndex:(NSUInteger)index; 66 - (NSString *)columnNameAtIndex:(NSUInteger)index; 67 68 - (SInt32)intAtIndex:(NSUInteger)index; 69 - (SInt64)int64AtIndex:(NSUInteger)index; 70 - (double)doubleAtIndex:(NSUInteger)index; 71 - (NSData *)blobAtIndex:(NSUInteger)index; 72 - (NSString *)textAtIndex:(NSUInteger)index; 73 - (id)objectAtIndex:(NSUInteger)index; 74 - (NSArray *)allObjects; 75 - (NSDictionary *)allObjectsByColumnName; 76 77 @end 78 79 #endif /* __OBJC2__ */ 80 #endif /* SECURITY_SFSQLSTATEMENT_H */