]> git.saurik.com Git - apple/security.git/blame - Analytics/SQLite/SFSQLiteStatement.h
Security-58286.41.2.tar.gz
[apple/security.git] / Analytics / SQLite / SFSQLiteStatement.h
CommitLineData
866f8763
A
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#import <Foundation/Foundation.h>
25#import <sqlite3.h>
26
27@class SFSQLite;
28
29@interface SFSQLiteStatement : NSObject {
30 __weak SFSQLite* _SQLite;
31 NSString* _SQL;
32 sqlite3_stmt* _handle;
33 BOOL _reset;
34 NSMutableArray* _temporaryBoundObjects;
35}
36
37- (id)initWithSQLite:(SFSQLite *)SQLite SQL:(NSString *)SQL handle:(sqlite3_stmt *)handle;
38
39@property (nonatomic, readonly, weak) SFSQLite *SQLite;
40@property (nonatomic, readonly, strong) NSString *SQL;
41@property (nonatomic, readonly, assign) sqlite3_stmt *handle;
42
43@property (nonatomic, assign, getter=isReset) BOOL reset;
44
45- (BOOL)step;
46- (void)reset;
47
48- (void)finalizeStatement;
49
50- (void)bindInt:(SInt32)value atIndex:(NSUInteger)index;
51- (void)bindInt64:(SInt64)value atIndex:(NSUInteger)index;
52- (void)bindDouble:(double)value atIndex:(NSUInteger)index;
53- (void)bindBlob:(NSData *)value atIndex:(NSUInteger)index;
54- (void)bindText:(NSString *)value atIndex:(NSUInteger)index;
55- (void)bindNullAtIndex:(NSUInteger)index;
56- (void)bindValue:(id)value atIndex:(NSUInteger)index;
57- (void)bindValues:(NSArray *)values;
58
59- (NSUInteger)columnCount;
60- (int)columnTypeAtIndex:(NSUInteger)index;
61- (NSString *)columnNameAtIndex:(NSUInteger)index;
62
63- (SInt32)intAtIndex:(NSUInteger)index;
64- (SInt64)int64AtIndex:(NSUInteger)index;
65- (double)doubleAtIndex:(NSUInteger)index;
66- (NSData *)blobAtIndex:(NSUInteger)index;
67- (NSString *)textAtIndex:(NSUInteger)index;
68- (id)objectAtIndex:(NSUInteger)index;
69- (NSArray *)allObjects;
70- (NSDictionary *)allObjectsByColumnName;
71
72@end