]> git.saurik.com Git - apple/security.git/blob - Analytics/SQLite/SFSQLiteStatement.h
Security-58286.31.2.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 #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