Proyectos de Subversion Iphone Microlearning - Nuevo Interface

Rev

Rev 32 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 32 Rev 61
Línea 6... Línea 6...
6
//
6
//
Línea 7... Línea 7...
7
 
7
 
8
import Foundation
8
import Foundation
Línea 9... Línea 9...
9
import SQLite3
9
import SQLite3
Línea -... Línea 10...
-
 
10
 
-
 
11
class Database : ObservableObject {
10
 
12
 
11
class Database {
-
 
-
 
13
 
Línea 12... Línea 14...
12
 
14
 
13
    private var conn : OpaquePointer?
15
    @Published var db : OpaquePointer? = nil
Línea 14... Línea -...
14
    private var path : String = Constants.DATABASE_NAME
-
 
15
    
16
    
16
    static let sharedInstance: Database = {
17
    
Línea 17... Línea -...
17
           let instance = Database()
-
 
18
           
-
 
19
           // setup code
-
 
20
           return instance
-
 
21
    }()
-
 
22
 
-
 
23
 
-
 
Línea 24... Línea 18...
24
    public func printError()
18
    static let sharedInstance: Database = {
25
    {
19
           let instance = Database()
26
        
-
 
27
    }
20
           
28
 
21
           return instance
29
 
22
    }()
30
    
23
 
31
    public func createTables()
24
    
32
    {
25
    public func createTables()
Línea 47... Línea 40...
47
            self.createTableUserNotification()
40
            self.createTableUserNotification()
48
        }
41
        }
49
    }
42
    }
Línea 50... Línea 43...
50
 
43
 
51
    public func open() -> OpaquePointer? {
-
 
52
        
44
    public func open() -> OpaquePointer? {
53
        if self.conn == nil {
-
 
54
        
-
 
55
            let filePath = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
-
 
Línea -... Línea 45...
-
 
45
        if self.db == nil {
56
                .appendingPathComponent(path)
46
            
Línea 57... Línea 47...
57
            
47
            let filePath = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
-
 
48
                .appendingPathComponent(Config.DATABASE_FILENAME)
-
 
49
            
-
 
50
            if sqlite3_open(filePath.path, &self.db) == SQLITE_OK {
58
            print("Database FilePath : \(filePath.path)")
51
                
-
 
52
                self.createTables();
Línea 59... Línea -...
59
            
-
 
60
            if sqlite3_open(filePath.path, &self.conn) != SQLITE_OK {
-
 
61
                print("No se pudo abrir la DB : \(path) ")
53
                
-
 
54
                print("Se abrio la conexión con la db : \(filePath.absoluteString) ")
62
                
55
                return self.db
63
                self.printError()
56
                
64
                return nil
57
            } else {
65
            } else {
58
                print("No se pudo abrir la db : \(filePath.absoluteString) ")
66
                return self.conn
59
                return nil
-
 
60
            }
-
 
61
        } else {
Línea 67... Línea 62...
67
            }
62
            return self.db
Línea -... Línea 63...
-
 
63
        }
-
 
64
 
-
 
65
 
-
 
66
        
-
 
67
    }
-
 
68
    
-
 
69
    public func close() -> Void
-
 
70
    {
-
 
71
        if self.db == nil {
-
 
72
            print("No se pudo cerrar la conexión, no es un recurso valida")
-
 
73
            return
-
 
74
        }
-
 
75
        
-
 
76
        
-
 
77
        if sqlite3_close(db) == SQLITE_OK {
Línea -... Línea 78...
-
 
78
            print("Se cerro la conexión de la base de datos")
68
        } else {
79
            self.db = nil
69
            return self.conn
80
        } else {
Línea 70... Línea 81...
70
        }
81
            print("No se pudo cerrar la conexión de la base de datos")
71
        
82
        }
Línea 72... Línea 83...
72
    }
83
    }
73
    
84
    
74
    
85
    
75
    
-
 
76
    func executeMultiQuery(queries: [String]) {
-
 
77
        
86
    
78
        
87
    private func executeMultiQuery(queries: [String]) -> Void {
79
        queries.forEach { query in
88
 
80
            var statement : OpaquePointer? = nil
-
 
81
            
-
 
82
            if sqlite3_prepare_v2(self.conn, query, -1, &statement, nil) == SQLITE_OK {
-
 
83
                if sqlite3_step(statement) != SQLITE_DONE {
89
        
84
                    print("Fallo la consulta: \(query) ")
-
 
85
                    
90
        for query  in queries {
86
                    self.printError()
91
            var statement : OpaquePointer? = nil
87
                }
-
 
Línea 88... Línea -...
88
            } else {
-
 
89
                print("Fallo la preparación: \(query) ")
-
 
Línea 90... Línea 92...
90
                
92
            
91
                self.printError()
93
            if sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK {
92
                
94
                if sqlite3_step(statement) != SQLITE_DONE {
93
            }
95
                    print("Fallo la consulta: \(query) ")
94
            
96
                }
95
        }
97
            } else {
Línea 130... Línea 132...
130
 
132
 
Línea 131... Línea 133...
131
        
133
        
132
 
134
 
Línea 133... Línea 135...
133
        var statement : OpaquePointer? = nil
135
        var statement : OpaquePointer? = nil
134
        
136
        
Línea 135... Línea 137...
135
        if sqlite3_prepare_v2(self.conn, sql, -1, &statement, nil) == SQLITE_OK {
137
        if sqlite3_prepare_v2(db, sql, -1, &statement, nil) == SQLITE_OK {
Línea 136... Línea 138...
136
            if sqlite3_step(statement) == SQLITE_DONE {
138
            if sqlite3_step(statement) == SQLITE_DONE {
137
                
139
                
Línea 138... Línea 140...
138
                let queries = [
140
                let queries = [
Línea 139... Línea 141...
139
                    "CREATE INDEX `idx_app_id` ON `" +  Constants.TABLE_APP + "` (`" +  Constants.TABLE_APP_FIELD_ID + "` );",
141
                    "CREATE INDEX IF NOT EXISTS `idx_app_id` ON `" +  Constants.TABLE_APP + "` (`" +  Constants.TABLE_APP_FIELD_ID + "` );",
140
                
142
                
Línea 141... Línea -...
141
                    "CREATE INDEX `idx_app_user_uuid` ON `" +  Constants.TABLE_APP + "` (`" +  Constants.TABLE_APP_FIELD_USER_UUID + "` );",
-
 
-
 
143
                    "CREATE INDEX IF NOT EXISTS `idx_app_user_uuid` ON `" +  Constants.TABLE_APP + "` (`" +  Constants.TABLE_APP_FIELD_USER_UUID + "` );",
142
                
144
                
143
                    "CREATE INDEX `idx_app_device_uuid` ON `" +  Constants.TABLE_APP + "` (`" +  Constants.TABLE_APP_FIELD_DEVICE_UUID + "` );"
145
                    "CREATE INDEX IF NOT EXISTS `idx_app_device_uuid` ON `" +  Constants.TABLE_APP + "` (`" +  Constants.TABLE_APP_FIELD_DEVICE_UUID + "` );"
144
                ]
146
                ]
Línea 145... Línea -...
145
                
-
 
-
 
147
                
Línea 146... Línea 148...
146
                executeMultiQuery(queries: queries)
148
                executeMultiQuery(queries: queries)
147
                
149
                
Línea 148... Línea 150...
148
                
150
                
149
            } else {
151
            } else {
150
                print("No se pudo crear la tabla: \(Constants.TABLE_APP)")
152
                print("No se pudo crear la tabla: \(Constants.TABLE_APP)")
151
                
153
                
152
                self.printError()
154
                
153
            }
155
            }
Línea 176... Línea 178...
176
        
178
        
Línea 177... Línea 179...
177
        
179
        
178
    
180
    
Línea 179... Línea 181...
179
        var statement : OpaquePointer? = nil
181
        var statement : OpaquePointer? = nil
180
        
182
        
Línea 181... Línea 183...
181
        if sqlite3_prepare_v2(self.conn, sql, -1, &statement, nil) == SQLITE_OK {
183
        if sqlite3_prepare_v2(db, sql, -1, &statement, nil) == SQLITE_OK {
182
            if sqlite3_step(statement) == SQLITE_DONE {
184
            if sqlite3_step(statement) == SQLITE_DONE {
Línea 183... Línea 185...
183
                
185
                
Línea 184... Línea 186...
184
                let queries = [
186
                let queries = [
185
                    "CREATE INDEX `idx_user_unotification_id` ON `" +  Constants.TABLE_USER_NOTIFICATION + "` (`" +  Constants.TABLE_USER_NOTIFICATION_FIELD_ID + "` );",
187
                    "CREATE INDEX IF NOT EXISTS `idx_user_unotification_id` ON `" +  Constants.TABLE_USER_NOTIFICATION + "` (`" +  Constants.TABLE_USER_NOTIFICATION_FIELD_ID + "` );",
Línea 186... Línea -...
186
                
-
 
-
 
188
                
187
                    "CREATE INDEX `idx_user_notification_user_uuid` ON `" +  Constants.TABLE_USER_NOTIFICATION + "` (`" +  Constants.TABLE_USER_NOTIFICATION_FIELD_USER_UUID + "` );"
189
                    "CREATE INDEX IF NOT EXISTS `idx_user_notification_user_uuid` ON `" +  Constants.TABLE_USER_NOTIFICATION + "` (`" +  Constants.TABLE_USER_NOTIFICATION_FIELD_USER_UUID + "` );"
188
                ]
190
                ]
189
                
191
                
Línea 190... Línea -...
190
                executeMultiQuery(queries: queries)
-
 
-
 
192
                executeMultiQuery(queries: queries)
191
                
193
                
192
            } else {
194
            } else {
Línea 193... Línea 195...
193
                print("No se pudo crear la tabla: \(Constants.TABLE_USER_NOTIFICATION)")
195
                print("No se pudo crear la tabla: \(Constants.TABLE_USER_NOTIFICATION)")
194
                
196
                
195
                self.printError()
197
                
196
            }
198
            }
197
        } else {
199
        } else {
198
            print("Fallo la preparación para crear la tabla: \(Constants.TABLE_USER_NOTIFICATION)")
200
            print("Fallo la preparación para crear la tabla: \(Constants.TABLE_USER_NOTIFICATION)")
199
         
201
         
200
            self.printError()
202
            
Línea 201... Línea 203...
201
        }
203
        }
Línea 202... Línea 204...
202
    }
204
    }
203
    
205
    
Línea 204... Línea 206...
204
    private func createTableUserExtended()
206
    private func createTableUserExtended() -> Void
205
    {
207
    {
206
        var sql = "CREATE TABLE IF NOT EXISTS " + Constants.TABLE_USER_EXTENDED + "("
208
        var sql = "CREATE TABLE IF NOT EXISTS " + Constants.TABLE_USER_EXTENDED + "("
Línea 207... Línea 209...
207
        sql = sql + Constants.TABLE_USER_EXTENDED_FIELD_UUID + " TEXT UNIQUE, "
209
        sql = sql + Constants.TABLE_USER_EXTENDED_FIELD_UUID + " TEXT UNIQUE, "
Línea 208... Línea 210...
208
        sql = sql + Constants.TABLE_USER_EXTENDED_FIELD_COMPANY_UUID + " TEXT,"
210
        sql = sql + Constants.TABLE_USER_EXTENDED_FIELD_COMPANY_UUID + " TEXT,"
209
        sql = sql + Constants.TABLE_USER_EXTENDED_FIELD_LABEL + " TEXT,"
211
        sql = sql + Constants.TABLE_USER_EXTENDED_FIELD_LABEL + " TEXT,"
Línea 210... Línea -...
210
        sql = sql + Constants.TABLE_USER_EXTENDED_FIELD_VALUE + " TEXT"
-
 
-
 
212
        sql = sql + Constants.TABLE_USER_EXTENDED_FIELD_VALUE + " TEXT"
211
        sql = sql + ");"
213
        sql = sql + ");"
212
        
214
        
213
        var statement : OpaquePointer? = nil
215
        var statement : OpaquePointer? = nil
Línea 214... Línea -...
214
        
-
 
-
 
216
        
Línea 215... Línea 217...
215
        if sqlite3_prepare_v2(self.conn, sql, -1, &statement, nil) == SQLITE_OK {
217
        if sqlite3_prepare_v2(db, sql, -1, &statement, nil) == SQLITE_OK {
216
            if sqlite3_step(statement) == SQLITE_DONE {
218
            if sqlite3_step(statement) == SQLITE_DONE {
Línea 217... Línea 219...
217
                
219
                
218
                let queries = [
220
                let queries = [
219
                    "CREATE INDEX `idx_user_extended_company_uuid` ON `" +  Constants.TABLE_USER_EXTENDED + "` (`" +  Constants.TABLE_USER_EXTENDED_FIELD_COMPANY_UUID + "` );"
221
                    "CREATE INDEX IF NOT EXISTS  `idx_user_extended_company_uuid` ON `" +  Constants.TABLE_USER_EXTENDED + "` (`" +  Constants.TABLE_USER_EXTENDED_FIELD_COMPANY_UUID + "` );"
220
                ]
222
                ]
221
                
223
                
222
                executeMultiQuery(queries: queries)
224
                executeMultiQuery(queries: queries)
Línea 223... Línea 225...
223
                
225
                
Línea 224... Línea 226...
224
            } else {
226
            } else {
225
                print("No se pudo crear la tabla: \(Constants.TABLE_USER_EXTENDED)")
227
                print("No se pudo crear la tabla: \(Constants.TABLE_USER_EXTENDED)")
226
                
228
                
Línea 227... Línea -...
227
                self.printError()
-
 
-
 
229
                
228
            }
230
            }
229
        } else {
231
        } else {
230
            print("Fallo la preparación para crear la tabla: \(Constants.TABLE_USER_EXTENDED)")
232
            print("Fallo la preparación para crear la tabla: \(Constants.TABLE_USER_EXTENDED)")
Línea 231... Línea -...
231
            
-
 
-
 
233
            
Línea 232... Línea 234...
232
            self.printError()
234
            
233
            
235
            
Línea 234... Línea 236...
234
        }
236
        }
235
    }
237
    }
236
    
238
    
237
    private func createTableSync()  {
239
    private func createTableSync() -> Void {
238
        var sql = "CREATE TABLE IF NOT EXISTS " + Constants.TABLE_SYNC + "("
240
        var sql = "CREATE TABLE IF NOT EXISTS " + Constants.TABLE_SYNC + "("
239
        sql = sql + Constants.TABLE_SYNC_FIELD_ID +  " INTEGER PRIMARY KEY, "
241
        sql = sql + Constants.TABLE_SYNC_FIELD_ID +  " INTEGER PRIMARY KEY, "
240
        sql = sql + Constants.TABLE_SYNC_FIELD_TYPE + " INTEGER,"
242
        sql = sql + Constants.TABLE_SYNC_FIELD_TYPE + " INTEGER,"
Línea 241... Línea 243...
241
        sql = sql + Constants.TABLE_SYNC_FIELD_DATA + " TEXT"
243
        sql = sql + Constants.TABLE_SYNC_FIELD_DATA + " TEXT"
242
        sql = sql + ");"
244
        sql = sql + ");"
Línea 243... Línea 245...
243
        
245
        
244
        var statement : OpaquePointer? = nil
246
        var statement : OpaquePointer? = nil
245
        
247
        
Línea 246... Línea 248...
246
        if sqlite3_prepare_v2(self.conn, sql, -1, &statement, nil) == SQLITE_OK {
248
        if sqlite3_prepare_v2(db, sql, -1, &statement, nil) == SQLITE_OK {
Línea 247... Línea 249...
247
            if sqlite3_step(statement) != SQLITE_DONE {
249
            if sqlite3_step(statement) != SQLITE_DONE {
248
                print("No se pudo crear la tabla: \(Constants.TABLE_SYNC)")
250
                print("No se pudo crear la tabla: \(Constants.TABLE_SYNC)")
Línea 249... Línea -...
249
                
-
 
-
 
251
                
250
                self.printError()
252
                
251
            }
253
            }
252
        } else {
254
        } else {
Línea 253... Línea -...
253
            print("Fallo la preparación para crear la tabla: \(Constants.TABLE_SYNC)")
-
 
-
 
255
            print("Fallo la preparación para crear la tabla: \(Constants.TABLE_SYNC)")
Línea 254... Línea 256...
254
            
256
            
255
            self.printError()
257
            
Línea 256... Línea 258...
256
            
258
            
257
        }
259
        }
258
    }
260
    }
259
    
261
    
260
    private func createTableCompany()  {
262
    private func createTableCompany() -> Void  {
261
        var sql = "CREATE TABLE IF NOT EXISTS " + Constants.TABLE_COMPANY + "("
263
        var sql = "CREATE TABLE IF NOT EXISTS " + Constants.TABLE_COMPANY + "("
Línea 300... Línea 302...
300
        sql = sql + ");"
302
        sql = sql + ");"
Línea 301... Línea 303...
301
        
303
        
Línea 302... Línea 304...
302
 
304
 
303
        var statement : OpaquePointer? = nil
305
        var statement : OpaquePointer? = nil
Línea 304... Línea 306...
304
        
306
        
305
        if sqlite3_prepare_v2(self.conn, sql, -1, &statement, nil) == SQLITE_OK {
307
        if sqlite3_prepare_v2(db, sql, -1, &statement, nil) == SQLITE_OK {
306
            if sqlite3_step(statement) == SQLITE_DONE {
308
            if sqlite3_step(statement) == SQLITE_DONE {
Línea 307... Línea 309...
307
                
309
                
Línea 308... Línea 310...
308
                let queries = [
310
                let queries = [
309
                    "CREATE INDEX `idx_topics_company_uuid` ON `" +  Constants.TABLE_TOPIC + "` (`" +  Constants.TABLE_TOPIC_FIELD_COMPANY_UUID + "` );"
311
                    "CREATE INDEX IF NOT EXISTS  `idx_topics_company_uuid` ON `" +  Constants.TABLE_TOPIC + "` (`" +  Constants.TABLE_TOPIC_FIELD_COMPANY_UUID + "` );"
Línea 310... Línea -...
310
                ]
-
 
-
 
312
                ]
311
                
313
                
312
                executeMultiQuery(queries: queries)
314
                executeMultiQuery(queries: queries)
313
                
315
                
Línea 314... Línea -...
314
            } else {
-
 
-
 
316
            } else {
315
                print("No se pudo crear la tabla: \(Constants.TABLE_TOPIC)")
317
                print("No se pudo crear la tabla: \(Constants.TABLE_TOPIC)")
316
                
318
                
Línea 317... Línea 319...
317
                self.printError()
319
                
318
           }
320
           }
319
        } else {
321
        } else {
320
            print("Fallo la preparación para crear la tabla: \(Constants.TABLE_TOPIC)")
322
            print("Fallo la preparación para crear la tabla: \(Constants.TABLE_TOPIC)")
321
            
323
            
322
            
324
            
Línea 342... Línea 344...
342
        sql = sql + ");"
344
        sql = sql + ");"
Línea 343... Línea 345...
343
        
345
        
Línea 344... Línea 346...
344
 
346
 
345
        var statement : OpaquePointer? = nil
347
        var statement : OpaquePointer? = nil
Línea 346... Línea 348...
346
        
348
        
347
        if sqlite3_prepare_v2(self.conn, sql, -1, &statement, nil) == SQLITE_OK {
349
        if sqlite3_prepare_v2(db, sql, -1, &statement, nil) == SQLITE_OK {
Línea 348... Línea 350...
348
            if sqlite3_step(statement) == SQLITE_DONE {
350
            if sqlite3_step(statement) == SQLITE_DONE {
Línea 349... Línea 351...
349
                
351
                
Línea 350... Línea 352...
350
                let queries = [
352
                let queries = [
351
                    "CREATE INDEX `idx_capsules_topic_uuid` ON `" +  Constants.TABLE_CAPSULE + "` (`" +  Constants.TABLE_CAPSULE_FIELD_TOPIC_UUID + "` );"
353
                    "CREATE INDEX IF NOT EXISTS `idx_capsules_topic_uuid` ON `" +  Constants.TABLE_CAPSULE + "` (`" +  Constants.TABLE_CAPSULE_FIELD_TOPIC_UUID + "` );"
Línea 352... Línea -...
352
               
-
 
-
 
354
               
353
                ]
355
                ]
354
                
356
                
355
                executeMultiQuery(queries: queries)
357
                executeMultiQuery(queries: queries)
Línea 356... Línea -...
356
                
-
 
-
 
358
                
357
            } else {
359
            } else {
358
                print("No se pudo crear la tabla: \(Constants.TABLE_CAPSULE)")
360
                print("No se pudo crear la tabla: \(Constants.TABLE_CAPSULE)")
Línea 359... Línea 361...
359
                
361
                
360
                self.printError()
362
                
361
           }
363
           }
362
        } else {
364
        } else {
363
            print("Fallo la preparación de la creación de la tabla: \(Constants.TABLE_CAPSULE)")
365
            print("Fallo la preparación de la creación de la tabla: \(Constants.TABLE_CAPSULE)")
364
            
366
            
Línea 383... Línea 385...
383
        
385
        
Línea 384... Línea 386...
384
        
386
        
385
 
387
 
Línea 386... Línea 388...
386
        var statement : OpaquePointer? = nil
388
        var statement : OpaquePointer? = nil
387
        
389
        
Línea 388... Línea 390...
388
        if sqlite3_prepare_v2(self.conn, sql, -1, &statement, nil) == SQLITE_OK {
390
        if sqlite3_prepare_v2(db, sql, -1, &statement, nil) == SQLITE_OK {
Línea 389... Línea 391...
389
            if sqlite3_step(statement) == SQLITE_DONE {
391
            if sqlite3_step(statement) == SQLITE_DONE {
Línea 390... Línea 392...
390
                
392
                
Línea 391... Línea 393...
391
                let queries = [
393
                let queries = [
Línea 392... Línea 394...
392
                    "CREATE INDEX `idx_slides_quiz_uuid` ON `" +  Constants.TABLE_SLIDE + "` (`" +  Constants.TABLE_SLIDE_FIELD_QUIZ_UUID + "` );",
394
                    "CREATE INDEX IF NOT EXISTS `idx_slides_quiz_uuid` ON `" +  Constants.TABLE_SLIDE + "` (`" +  Constants.TABLE_SLIDE_FIELD_QUIZ_UUID + "` );",
393
                
395
                
Línea 394... Línea -...
394
                    "CREATE INDEX `idx_slides_capsule_uuid` ON `" +  Constants.TABLE_SLIDE + "` (`" +  Constants.TABLE_SLIDE_FIELD_CAPSULE_UUID + "` );",
-
 
-
 
396
                    "CREATE INDEX IF NOT EXISTS  `idx_slides_capsule_uuid` ON `" +  Constants.TABLE_SLIDE + "` (`" +  Constants.TABLE_SLIDE_FIELD_CAPSULE_UUID + "` );",
395
               
397
               
396
                    "CREATE INDEX `idx_slides_topic_uuid` ON `" +  Constants.TABLE_SLIDE + "` (`" +  Constants.TABLE_SLIDE_FIELD_TOPIC_UUID + "` );"
398
                    "CREATE INDEX IF NOT EXISTS  `idx_slides_topic_uuid` ON `" +  Constants.TABLE_SLIDE + "` (`" +  Constants.TABLE_SLIDE_FIELD_TOPIC_UUID + "` );"
397
               
399
               
Línea 398... Línea -...
398
                ]
-
 
-
 
400
                ]
399
                
401
                
400
                executeMultiQuery(queries: queries)
402
                executeMultiQuery(queries: queries)
Línea 401... Línea 403...
401
                
403
                
402
            } else {
404
            } else {
403
                print("No se pudo crear la tabla: \(Constants.TABLE_SLIDE)")
405
                print("No se pudo crear la tabla: \(Constants.TABLE_SLIDE)")
404
                
406
                
405
                self.printError()
407
                
406
           }
408
           }
Línea 434... Línea 436...
434
        print("sql : \(sql)")
436
        print("sql : \(sql)")
Línea 435... Línea 437...
435
        
437
        
Línea 436... Línea 438...
436
 
438
 
437
        var statement : OpaquePointer? = nil
439
        var statement : OpaquePointer? = nil
Línea 438... Línea 440...
438
        
440
        
439
        if sqlite3_prepare_v2(self.conn, sql, -1, &statement, nil) == SQLITE_OK {
441
        if sqlite3_prepare_v2(db, sql, -1, &statement, nil) == SQLITE_OK {
Línea 440... Línea 442...
440
            if sqlite3_step(statement) == SQLITE_DONE {
442
            if sqlite3_step(statement) == SQLITE_DONE {
Línea 441... Línea 443...
441
                
443
                
Línea 442... Línea 444...
442
                let queries = [
444
                let queries = [
443
                    "CREATE INDEX `idx_progress_topic_uuid` ON `" +  Constants.TABLE_PROGRESS + "` (`" +  Constants.TABLE_PROGRESS_FIELD_TOPIC_UUID + "` );",
445
                    "CREATE INDEX IF NOT EXISTS `idx_progress_topic_uuid` ON `" +  Constants.TABLE_PROGRESS + "` (`" +  Constants.TABLE_PROGRESS_FIELD_TOPIC_UUID + "` );",
Línea 444... Línea 446...
444
                
446
                
Línea 445... Línea 447...
445
                    "CREATE INDEX `idx_progress_capsule_uuid` ON `" +  Constants.TABLE_PROGRESS + "` (`" +  Constants.TABLE_PROGRESS_FIELD_CAPSULE_UUID + "` );",
447
                    "CREATE INDEX IF NOT EXISTS  `idx_progress_capsule_uuid` ON `" +  Constants.TABLE_PROGRESS + "` (`" +  Constants.TABLE_PROGRESS_FIELD_CAPSULE_UUID + "` );",
446
                
448
                
447
                    "CREATE INDEX `idx_progress_slide_uuid` ON `" +  Constants.TABLE_PROGRESS + "` (`" +  Constants.TABLE_PROGRESS_FIELD_SLIDE_UUID + "` );",
449
                    "CREATE INDEX IF NOT EXISTS  `idx_progress_slide_uuid` ON `" +  Constants.TABLE_PROGRESS + "` (`" +  Constants.TABLE_PROGRESS_FIELD_SLIDE_UUID + "` );",
448
                
-
 
-
 
450
                
449
                    "CREATE INDEX `idx_progress_user_uuid` ON `" +  Constants.TABLE_PROGRESS + "` (`" +  Constants.TABLE_PROGRESS_FIELD_USER_UUID + "` );"
451
                    "CREATE INDEX IF NOT EXISTS  `idx_progress_user_uuid` ON `" +  Constants.TABLE_PROGRESS + "` (`" +  Constants.TABLE_PROGRESS_FIELD_USER_UUID + "` );"
450
                ]
452
                ]
451
                
453
                
Línea 452... Línea -...
452
                executeMultiQuery(queries: queries)
-
 
-
 
454
                executeMultiQuery(queries: queries)
453
                
455
                
454
            } else {
456
            } else {
Línea 455... Línea 457...
455
                print("No se pudo crear la tabla: \(Constants.TABLE_PROGRESS)")
457
                print("No se pudo crear la tabla: \(Constants.TABLE_PROGRESS)")
456
                print(sql)
458
                print(sql)
457
                self.printError()
459
                
458
           }
460
           }
459
        } else {
461
        } else {
460
            print("Fallo la preparación para la creación de la tabla: \(Constants.TABLE_PROGRESS)")
462
            print("Fallo la preparación para la creación de la tabla: \(Constants.TABLE_PROGRESS)")
Línea 476... Línea 478...
476
        sql = sql + ");"
478
        sql = sql + ");"
Línea 477... Línea 479...
477
        
479
        
Línea 478... Línea 480...
478
 
480
 
479
        var statement : OpaquePointer? = nil
481
        var statement : OpaquePointer? = nil
Línea 480... Línea 482...
480
        
482
        
481
        if sqlite3_prepare_v2(self.conn, sql, -1, &statement, nil) == SQLITE_OK {
483
        if sqlite3_prepare_v2(db, sql, -1, &statement, nil) == SQLITE_OK {
Línea 482... Línea 484...
482
            if sqlite3_step(statement) == SQLITE_DONE {
484
            if sqlite3_step(statement) == SQLITE_DONE {
483
                
485
                
Línea 484... Línea 486...
484
                let queries = [
486
                let queries = [
Línea 485... Línea 487...
485
                    "CREATE INDEX `idx_user_log_user_uuid` ON `" +  Constants.TABLE_USER_LOG + "` (`" +  Constants.TABLE_USER_LOG_FIELD_USER_UUID + "` );",
487
                    "CREATE INDEX IF NOT EXISTS `idx_user_log_user_uuid` ON `" +  Constants.TABLE_USER_LOG + "` (`" +  Constants.TABLE_USER_LOG_FIELD_USER_UUID + "` );",
486
                    
488
                    
Línea 487... Línea -...
487
                    "CREATE INDEX `idx_user_log_added_on` ON `" +  Constants.TABLE_USER_LOG + "` (`" +  Constants.TABLE_USER_LOG_FIELD_ADDED_ON + "` );"
-
 
-
 
489
                    "CREATE INDEX IF NOT EXISTS `idx_user_log_added_on` ON `" +  Constants.TABLE_USER_LOG + "` (`" +  Constants.TABLE_USER_LOG_FIELD_ADDED_ON + "` );"
488
                ]
490
                ]
489
                
491
                
490
                executeMultiQuery(queries: queries)
492
                executeMultiQuery(queries: queries)
Línea 491... Línea -...
491
                
-
 
-
 
493
                
492
            } else {
494
            } else {
493
                print("No se pudo crear la tabla: \(Constants.TABLE_USER_LOG)")
495
                print("No se pudo crear la tabla: \(Constants.TABLE_USER_LOG)")
Línea 494... Línea 496...
494
                
496
                
495
                self.printError()
497
                
496
           }
498
           }
497
        } else {
499
        } else {
498
            print("Fallo la preparación de la creación de la tabla: \(Constants.TABLE_USER_LOG)")
500
            print("Fallo la preparación de la creación de la tabla: \(Constants.TABLE_USER_LOG)")
499
            
501
            
Línea 517... Línea 519...
517
        sql = sql + Constants.TABLE_QUIZ_FIELD_UPDATED_ON + " TEXT);"
519
        sql = sql + Constants.TABLE_QUIZ_FIELD_UPDATED_ON + " TEXT);"
Línea 518... Línea 520...
518
 
520
 
Línea 519... Línea 521...
519
        
521
        
520
        var statement : OpaquePointer? = nil
522
        var statement : OpaquePointer? = nil
Línea 521... Línea 523...
521
        
523
        
522
        if sqlite3_prepare_v2(self.conn, sql, -1, &statement, nil) == SQLITE_OK {
524
        if sqlite3_prepare_v2(db, sql, -1, &statement, nil) == SQLITE_OK {
523
            if sqlite3_step(statement) == SQLITE_DONE {
525
            if sqlite3_step(statement) == SQLITE_DONE {
Línea 524... Línea 526...
524
                
526
                
Línea 525... Línea 527...
525
                let queries = [
527
                let queries = [
526
                    "CREATE INDEX `idx_quizzes_company_uuid` ON `" +  Constants.TABLE_QUIZ + "` (`" +  Constants.TABLE_QUIZ_FIELD_COMPANY_UUID + "` );"
528
                    "CREATE INDEX IF NOT EXISTS  `idx_quizzes_company_uuid` ON `" +  Constants.TABLE_QUIZ + "` (`" +  Constants.TABLE_QUIZ_FIELD_COMPANY_UUID + "` );"
Línea 527... Línea -...
527
                ]
-
 
-
 
529
                ]
528
                
530
                
529
                executeMultiQuery(queries: queries)
531
                executeMultiQuery(queries: queries)
530
                
532
                
Línea 531... Línea -...
531
            } else {
-
 
-
 
533
            } else {
532
                print("No se pudo crear la tabla: \(Constants.TABLE_QUIZ)")
534
                print("No se pudo crear la tabla: \(Constants.TABLE_QUIZ)")
Línea 533... Línea 535...
533
                
535
                
Línea 534... Línea 536...
534
                self.printError()
536
                
535
           }
537
           }
536
        } else {
538
        } else {
537
            print("Fallo la preparación de la creación de la tabla: \(Constants.TABLE_QUIZ)")
539
            print("Fallo la preparación de la creación de la tabla: \(Constants.TABLE_QUIZ)")
538
            
540
            
539
            self.printError()
541
            
Línea 552... Línea 554...
552
        sql = sql + Constants.TABLE_QUESTION_FIELD_ADDED_ON + " TEXT,"
554
        sql = sql + Constants.TABLE_QUESTION_FIELD_ADDED_ON + " TEXT,"
553
        sql = sql + Constants.TABLE_QUESTION_FIELD_UPDATED_ON + " TEXT);"
555
        sql = sql + Constants.TABLE_QUESTION_FIELD_UPDATED_ON + " TEXT);"
Línea 554... Línea 556...
554
        
556
        
Línea 555... Línea 557...
555
        var statement : OpaquePointer? = nil
557
        var statement : OpaquePointer? = nil
556
        
558
        
Línea 557... Línea 559...
557
        if sqlite3_prepare_v2(self.conn, sql, -1, &statement, nil) == SQLITE_OK {
559
        if sqlite3_prepare_v2(db, sql, -1, &statement, nil) == SQLITE_OK {
558
            if sqlite3_step(statement) == SQLITE_DONE {
560
            if sqlite3_step(statement) == SQLITE_DONE {
559
            
561
            
Línea 560... Línea 562...
560
                let queries = [
562
                let queries = [
561
                    "CREATE INDEX `idx_questions_quiz_uuid` ON " +  Constants.TABLE_QUIZ + "` (`" +  Constants.TABLE_QUIZ_FIELD_UUID + "` );"
563
                    "CREATE INDEX IF NOT EXISTS `idx_questions_quiz_uuid` ON " +  Constants.TABLE_QUIZ + "` (`" +  Constants.TABLE_QUIZ_FIELD_UUID + "` );"
562
                ]
564
                ]
Línea 563... Línea -...
563
                
-
 
-
 
565
                
564
                executeMultiQuery(queries: queries)
566
                executeMultiQuery(queries: queries)
565
            } else {
567
            } else {
566
                print("No se pudo crear la tabla: \(Constants.TABLE_QUESTION)")
568
                print("No se pudo crear la tabla: \(Constants.TABLE_QUESTION)")
Línea 567... Línea -...
567
                
-
 
-
 
569
                
568
                self.printError()
570
                
569
           }
571
           }
Línea 570... Línea 572...
570
        } else {
572
        } else {
571
            print("Fallo la preparación de la creación  de la tabla: \(Constants.TABLE_QUESTION)")
573
            print("Fallo la preparación de la creación  de la tabla: \(Constants.TABLE_QUESTION)")
572
            
574
            
573
            self.printError()
575
            
574
        }
576
        }
575
    }
577
    }
Línea 585... Línea 587...
585
        sql = sql + Constants.TABLE_ANSWER_FIELD_UPDATED_ON + " TEXT); "
587
        sql = sql + Constants.TABLE_ANSWER_FIELD_UPDATED_ON + " TEXT); "
Línea 586... Línea 588...
586
        
588
        
Línea 587... Línea 589...
587
 
589
 
588
        var statement : OpaquePointer? = nil
590
        var statement : OpaquePointer? = nil
589
        
591
        
590
        if sqlite3_prepare_v2(self.conn, sql, -1, &statement, nil) == SQLITE_OK {
592
        if sqlite3_prepare_v2(db, sql, -1, &statement, nil) == SQLITE_OK {
591
            if sqlite3_step(statement) == SQLITE_DONE {
593
            if sqlite3_step(statement) == SQLITE_DONE {
Línea 592... Línea 594...
592
                let queries = [
594
                let queries = [
Línea 593... Línea 595...
593
                    "CREATE INDEX `idx_answers_question_uuid` ON `" +  Constants.TABLE_QUESTION + "` (`" +  Constants.TABLE_QUESTION_FIELD_UUID + "` );"
595
                    "CREATE INDEX IF NOT EXISTS `idx_answers_question_uuid` ON `" +  Constants.TABLE_QUESTION + "` (`" +  Constants.TABLE_QUESTION_FIELD_UUID + "` );"
594
                ]
596
                ]
Línea 595... Línea -...
595
                
-
 
-
 
597
                
596
                executeMultiQuery(queries: queries)
598
                executeMultiQuery(queries: queries)
597
                
599
                
598
            } else {
600
            } else {
Línea 599... Línea -...
599
                print("No se pudo crear la tabla: \(Constants.TABLE_ANSWER)")
-
 
-
 
601
                print("No se pudo crear la tabla: \(Constants.TABLE_ANSWER)")
600
                
602
                
601
                self.printError()
603