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