Proyectos de Subversion Iphone Microlearning - Nuevo Interface

Rev

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

Rev 19 Rev 61
Línea 5... Línea 5...
5
//  Created by Efrain Yanez Recanatini on 2/21/22.
5
//  Created by Efrain Yanez Recanatini on 2/21/22.
6
//
6
//
Línea 7... Línea 7...
7
 
7
 
8
import UIKit
8
import UIKit
-
 
9
import SQLite3
-
 
10
import SwiftUI
Línea 9... Línea 11...
9
import SQLite3
11
 
-
 
12
 
10
 
13
class AnswerDao {
11
class AnswerDao {
-
 
12
    private let SQLITE_TRANSIENT = unsafeBitCast(-1, to: sqlite3_destructor_type.self)
-
 
13
    private var database = Database.sharedInstance
-
 
14
    
-
 
15
    
-
 
16
    static let sharedInstance: AnswerDao = {
-
 
17
           let instance = AnswerDao()
-
 
18
           
-
 
19
           // setup code
-
 
20
           return instance
-
 
Línea -... Línea 14...
-
 
14
    private var database = Environment(\.database).wrappedValue
21
    }()
15
    private let SQLITE_TRANSIENT = unsafeBitCast(-1, to: sqlite3_destructor_type.self)
22
    
16
 
23
 
-
 
24
    func insert(answer : AnswerModel) {
17
    
25
        let db = database.open()
18
    func insert(answer : AnswerModel) {
26
        
19
        let db = database.open()
27
        var query = "INSERT INTO " + Constants.TABLE_ANSWER + " ( "
20
        var query = "INSERT INTO " + Constants.TABLE_ANSWER + " ( "
28
        query = query + Constants.TABLE_ANSWER_FIELD_UUID + ", "
21
        query = query + Constants.TABLE_ANSWER_FIELD_UUID + ", "
Línea 45... Línea 38...
45
            sqlite3_bind_text(statement, 7, answer.updatedOn , -1, SQLITE_TRANSIENT)
38
            sqlite3_bind_text(statement, 7, answer.updatedOn , -1, SQLITE_TRANSIENT)
Línea 46... Línea 39...
46
 
39
 
47
 
40
 
48
           if sqlite3_step(statement) != SQLITE_DONE {
-
 
-
 
41
           if sqlite3_step(statement) != SQLITE_DONE {
49
                print("No se pudo insertar un registro en la tabla: \(Constants.TABLE_ANSWER) ")
42
                print("No se pudo insertar un registro en la tabla: \(Constants.TABLE_ANSWER) ")
Línea 50... Línea 43...
50
                database.printError()
43
               
51
           }
44
           }
52
           
-
 
-
 
45
           
53
        } else {
46
        } else {
Línea 54... Línea 47...
54
            print("Fallo la preparación del insertar en la tabla: \(Constants.TABLE_ANSWER)")
47
            print("Fallo la preparación del insertar en la tabla: \(Constants.TABLE_ANSWER)")
55
            database.printError()
48
           
Línea 89... Línea 82...
89
                
82
                
Línea 90... Línea 83...
90
                records.append(model)
83
                records.append(model)
91
                
84
                
92
            }
-
 
-
 
85
            }
93
        } else {
86
        } else {
94
            database.printError()
87
           
95
        }
88
        }
96
        sqlite3_finalize(statement)
89
        sqlite3_finalize(statement)
Línea 121... Línea 114...
121
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 5)))
114
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 5)))
122
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 6)))
115
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 6)))
Línea 123... Línea 116...
123
               
116
               
124
            }
117
            }
125
        } else {
-
 
-
 
118
        } else {
126
            database.printError()
119
           
127
        }
120
        }
128
        sqlite3_finalize(statement)
121
        sqlite3_finalize(statement)
129
        return model
122
        return model
Línea 148... Línea 141...
148
            sqlite3_bind_text(statement, 4, answerModel.updatedOn, -1, SQLITE_TRANSIENT)
141
            sqlite3_bind_text(statement, 4, answerModel.updatedOn, -1, SQLITE_TRANSIENT)
149
            sqlite3_bind_text(statement, 5, answerModel.uuid, -1, SQLITE_TRANSIENT)
142
            sqlite3_bind_text(statement, 5, answerModel.uuid, -1, SQLITE_TRANSIENT)
Línea 150... Línea 143...
150
            
143
            
151
            if sqlite3_step(statement) != SQLITE_DONE {
144
            if sqlite3_step(statement) != SQLITE_DONE {
152
                print("No se pudo actualizar un registro de la tabla: \(Constants.TABLE_ANSWER)")
-
 
-
 
145
                print("No se pudo actualizar un registro de la tabla: \(Constants.TABLE_ANSWER)")
153
                database.printError()
146
               
154
            }
147
            }
155
        } else {
148
        } else {
156
            print("Fallo la preparación de actualizar un registro en la tabla: \(Constants.TABLE_ANSWER)")
-
 
-
 
149
            print("Fallo la preparación de actualizar un registro en la tabla: \(Constants.TABLE_ANSWER)")
157
            database.printError()
150
           
158
        }
151
        }
159
        sqlite3_finalize(statement)
152
        sqlite3_finalize(statement)
Línea 160... Línea 153...
160
    }
153
    }
161
 
154
 
162
    
155
    
163
    func remove(uuid : String) {
156
    func remove(uuid : String) {
-
 
157
        let db = database.open()
164
        let db = database.open()
158
        let query = "DELETE FROM " + Constants.TABLE_ANSWER +
165
        let query = "DELETE FROM " + Constants.TABLE_ANSWER +
159
            " WHERE " + Constants.TABLE_ANSWER_FIELD_UUID + " = '\(uuid)' ;"
166
            " WHERE " + Constants.TABLE_ANSWER_FIELD_UUID + " = '\(uuid)' ;"
160
        
167
        var statement : OpaquePointer? = nil
161
        var statement : OpaquePointer? = nil
Línea 168... Línea -...
168
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
-
 
-
 
162
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
169
            if (sqlite3_step(statement) != SQLITE_DONE) {
163
            if (sqlite3_step(statement) != SQLITE_DONE) {
170
                print("No se pudo borrar el registro con el uuid: \(uuid) de la tabla: \(Constants.TABLE_ANSWER) ")
164
                print("No se pudo borrar el registro con el uuid: \(uuid) de la tabla: \(Constants.TABLE_ANSWER) ")
171
                
165
                
Línea 172... Línea -...
172
                database.printError()
-
 
-
 
166
               
173
            }
167
            }
174
        } else {
168
        } else {
175
            print("Fallo la preparación para borrar un registro de la tabla \(Constants.TABLE_ANSWER) ")
169
            print("Fallo la preparación para borrar un registro de la tabla \(Constants.TABLE_ANSWER) ")
Línea 176... Línea 170...
176
            
170
            
Línea 185... Línea 179...
185
        var statement : OpaquePointer? = nil
179
        var statement : OpaquePointer? = nil
186
        if sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK{
180
        if sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK{
187
            if sqlite3_step(statement) != SQLITE_DONE {
181
            if sqlite3_step(statement) != SQLITE_DONE {
188
                print("No se pudieron borrar todos los registros de la tabla: \(Constants.TABLE_ANSWER) ")
182
                print("No se pudieron borrar todos los registros de la tabla: \(Constants.TABLE_ANSWER) ")
Línea 189... Línea -...
189
                
-
 
-
 
183
                
190
                database.printError()
184
               
191
            }
185
            }
192
        } else {
186
        } else {
Línea 193... Línea -...
193
            print("Fallo la preparación para borrar todos los registros de la tabla: \(Constants.TABLE_ANSWER)")
-
 
-
 
187
            print("Fallo la preparación para borrar todos los registros de la tabla: \(Constants.TABLE_ANSWER)")
194
            
188
            
195
            database.printError()
189
           
196
        }
190
        }
Línea 197... Línea 191...
197
        sqlite3_finalize(statement)
191
        sqlite3_finalize(statement)