14
14
static NSString *const QUERY_TABLENAMES_SQL = @" SELECT name FROM sqlite_master WHERE type='table' ORDER BY name" ;
15
15
16
16
@implementation FLEXSQLiteDatabaseManager
17
- {
18
- sqlite3* _db;
19
- NSString * _databasePath;
20
- }
21
-
17
+ {
18
+ sqlite3* _db;
19
+ NSString * _databasePath;
20
+ }
21
+
22
22
- (instancetype )initWithPath : (NSString *)aPath
23
- {
24
- self = [super init ];
25
-
26
- if (self) {
27
- _databasePath = [aPath copy ];
28
- }
29
- return self;
23
+ {
24
+ self = [super init ];
25
+ if (self) {
26
+ _databasePath = [aPath copy ];
30
27
}
31
28
29
+ return self;
30
+ }
31
+
32
32
- (BOOL )open {
33
33
if (_db) {
34
34
return YES ;
@@ -51,7 +51,7 @@ - (BOOL)open {
51
51
}
52
52
return YES ;
53
53
}
54
-
54
+
55
55
- (BOOL )close {
56
56
if (!_db) {
57
57
return YES ;
@@ -84,12 +84,12 @@ - (BOOL)close {
84
84
_db = nil ;
85
85
return YES ;
86
86
}
87
-
88
-
87
+
88
+
89
89
- (NSArray <NSDictionary<NSString *, id> *> *)queryAllTables {
90
90
return [self executeQuery: QUERY_TABLENAMES_SQL];
91
91
}
92
-
92
+
93
93
- (NSArray <NSString *> *)queryAllColumnsWithTableName : (NSString *)tableName {
94
94
NSString *sql = [NSString stringWithFormat: @" PRAGMA table_info('%@ ')" ,tableName];
95
95
NSArray <NSDictionary <NSString *, id > *> *resultArray = [self executeQuery: sql];
@@ -100,12 +100,12 @@ - (BOOL)close {
100
100
}
101
101
return array;
102
102
}
103
-
103
+
104
104
- (NSArray <NSDictionary<NSString *, id> *> *)queryAllDataWithTableName : (NSString *)tableName {
105
105
NSString *sql = [NSString stringWithFormat: @" SELECT * FROM %@ " ,tableName];
106
106
return [self executeQuery: sql];
107
107
}
108
-
108
+
109
109
- (NSString *)executeNonSelectQuery : (NSString *)sql {
110
110
NSString *error = nil ;
111
111
@@ -115,18 +115,18 @@ - (NSString *)executeNonSelectQuery:(NSString *)sql {
115
115
if (sqlite3_prepare_v2 (_db, [sql UTF8String ], -1 , &pstmt, NULL ) != SQLITE_OK) {
116
116
return [NSString stringWithFormat: @" Prepare failure: %s " , sqlite3_errmsg (_db)];
117
117
}
118
-
118
+
119
119
if (sqlite3_step (pstmt) != SQLITE_DONE) {
120
120
return [NSString stringWithFormat: @" Step failure: %s " , sqlite3_errmsg (_db)];
121
121
}
122
-
122
+
123
123
sqlite3_finalize (pstmt);
124
-
124
+
125
125
[self close ];
126
-
126
+
127
127
return error;
128
128
}
129
-
129
+
130
130
- (NSArray <NSDictionary<NSString *, id> *> *)executeSelectionQuery : (NSString *)sql and : (NSString **)error {
131
131
[self open ];
132
132
@@ -165,11 +165,11 @@ - (NSString *)executeNonSelectQuery:(NSString *)sql {
165
165
166
166
return resultArray;
167
167
}
168
-
169
-
168
+
169
+
170
170
#pragma mark -
171
171
#pragma mark - Private
172
-
172
+
173
173
- (NSArray <NSDictionary<NSString *, id> *> *)executeQuery : (NSString *)sql {
174
174
[self open ];
175
175
NSMutableArray <NSDictionary <NSString *, id > *> *resultArray = [NSMutableArray array ];
@@ -198,10 +198,10 @@ - (NSString *)executeNonSelectQuery:(NSString *)sql {
198
198
199
199
return resultArray;
200
200
}
201
-
201
+
202
202
- (id )objectForColumnIndex : (int )columnIdx stmt : (sqlite3_stmt*)stmt {
203
203
int columnType = sqlite3_column_type (stmt, columnIdx);
204
-
204
+
205
205
id returnValue = nil ;
206
206
207
207
if (columnType == SQLITE_INTEGER) {
@@ -224,7 +224,7 @@ - (id)objectForColumnIndex:(int)columnIdx stmt:(sqlite3_stmt*)stmt {
224
224
225
225
return returnValue;
226
226
}
227
-
227
+
228
228
- (NSString *)stringForColumnIndex : (int )columnIdx stmt : (sqlite3_stmt *)stmt {
229
229
230
230
if (sqlite3_column_type (stmt, columnIdx) == SQLITE_NULL || (columnIdx < 0 )) {
@@ -240,21 +240,21 @@ - (NSString *)stringForColumnIndex:(int)columnIdx stmt:(sqlite3_stmt *)stmt {
240
240
241
241
return [NSString stringWithUTF8String: c];
242
242
}
243
-
244
- - (NSData *)dataForColumnIndex:(int )columnIdx stmt:(sqlite3_stmt *)stmt {
245
-
246
- if (sqlite3_column_type (stmt, columnIdx) == SQLITE_NULL || (columnIdx < 0 )) {
247
- return nil ;
248
- }
249
-
250
- const char *dataBuffer = sqlite3_column_blob (stmt, columnIdx);
251
- int dataSize = sqlite3_column_bytes (stmt, columnIdx);
252
-
253
- if (dataBuffer == NULL ) {
254
- return nil ;
255
- }
256
-
257
- return [NSData dataWithBytes: (const void *)dataBuffer length: (NSUInteger )dataSize];
258
- }
259
-
243
+
244
+ - (NSData *)dataForColumnIndex : (int )columnIdx stmt : (sqlite3_stmt *)stmt {
245
+
246
+ if (sqlite3_column_type (stmt, columnIdx) == SQLITE_NULL || (columnIdx < 0 )) {
247
+ return nil ;
248
+ }
249
+
250
+ const char *dataBuffer = sqlite3_column_blob (stmt, columnIdx);
251
+ int dataSize = sqlite3_column_bytes (stmt, columnIdx);
252
+
253
+ if (dataBuffer == NULL ) {
254
+ return nil ;
255
+ }
256
+
257
+ return [NSData dataWithBytes: (const void *)dataBuffer length: (NSUInteger )dataSize];
258
+ }
259
+
260
260
@end
0 commit comments