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 3... Línea 3...
3
//  twogetskills
3
//  twogetskills
4
//
4
//
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 SwiftUI
Línea 9... Línea 9...
9
import SQLite3
9
import SQLite3
-
 
10
 
10
 
11
class QuestionDao {
11
class QuestionDao {
-
 
Línea 12... Línea -...
12
    private let SQLITE_TRANSIENT = unsafeBitCast(-1, to: sqlite3_destructor_type.self)
-
 
13
    private var database = Database.sharedInstance
-
 
14
    
12
    private var database = Environment(\.database).wrappedValue
15
    static let sharedInstance: QuestionDao = {
-
 
16
           let instance = QuestionDao()
-
 
17
           
-
 
18
           // setup code
-
 
19
           return instance
13
    private let SQLITE_TRANSIENT = unsafeBitCast(-1, to: sqlite3_destructor_type.self)
20
    }()
14
    
21
 
15
    
Línea 22... Línea 16...
22
    func selectAllByQuizUuid(quizUuid: String)-> [QuestionModel] {
16
    func selectAllByQuizUuid(quizUuid: String)-> [QuestionModel] {
Línea 51... Línea 45...
51
 
45
 
Línea 52... Línea 46...
52
                records.append(model)
46
                records.append(model)
53
                
47
                
54
            }
-
 
-
 
48
            }
55
        } else {
49
        } else {
56
            database.printError()
50
           
57
        }
51
        }
58
        sqlite3_finalize(statement)
52
        sqlite3_finalize(statement)
Línea 86... Línea 80...
86
                model.position = Int(sqlite3_column_int(statement, 5))
80
                model.position = Int(sqlite3_column_int(statement, 5))
87
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 6)))
81
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 6)))
88
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 7)))
82
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 7)))
89
            }
83
            }
90
        } else {
84
        } else {
91
            database.printError()
-
 
-
 
85
           
92
        }
86
        }
93
        sqlite3_finalize(statement)
87
        sqlite3_finalize(statement)
94
        return model
88
        return model
95
    }
89
    }
Línea 120... Línea 114...
120
            sqlite3_bind_text(statement, 7, question.addedOn , -1, SQLITE_TRANSIENT)
114
            sqlite3_bind_text(statement, 7, question.addedOn , -1, SQLITE_TRANSIENT)
121
            sqlite3_bind_text(statement, 8, question.updatedOn , -1, SQLITE_TRANSIENT)
115
            sqlite3_bind_text(statement, 8, question.updatedOn , -1, SQLITE_TRANSIENT)
Línea 122... Línea 116...
122
   
116
   
123
           if (sqlite3_step(statement) != SQLITE_DONE) {
117
           if (sqlite3_step(statement) != SQLITE_DONE) {
124
                print("No se pudo insertar un registro en la tabla: \(Constants.TABLE_QUESTION) ")
-
 
-
 
118
                print("No se pudo insertar un registro en la tabla: \(Constants.TABLE_QUESTION) ")
125
                database.printError()
119
               
126
           }
120
           }
127
        } else {
121
        } else {
128
            print("Fallo la preparación de insertar un registro en una tabla: \(Constants.TABLE_QUESTION) ")
-
 
-
 
122
            print("Fallo la preparación de insertar un registro en una tabla: \(Constants.TABLE_QUESTION) ")
129
            database.printError()
123
           
Línea 130... Línea 124...
130
        }
124
        }
131
       
125
       
Línea 144... Línea 138...
144
        query = query + Constants.TABLE_QUESTION_FIELD_UUID + " = '\(question.uuid)' ;"
138
        query = query + Constants.TABLE_QUESTION_FIELD_UUID + " = '\(question.uuid)' ;"
145
        var statement : OpaquePointer? = nil
139
        var statement : OpaquePointer? = nil
146
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
140
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
147
            if (sqlite3_step(statement) != SQLITE_DONE) {
141
            if (sqlite3_step(statement) != SQLITE_DONE) {
148
                print("No se pudo actualizar un registro en la tabla: \(Constants.TABLE_QUESTION)")
142
                print("No se pudo actualizar un registro en la tabla: \(Constants.TABLE_QUESTION)")
149
                database.printError()
-
 
-
 
143
               
150
            }
144
            }
151
        } else {
145
        } else {
152
            print("No se pudo preparar el actualizar un registro en la tabla: \(Constants.TABLE_QUESTION)")
146
            print("No se pudo preparar el actualizar un registro en la tabla: \(Constants.TABLE_QUESTION)")
153
            database.printError()
-
 
-
 
147
           
154
        }
148
        }
155
        sqlite3_finalize(statement)
149
        sqlite3_finalize(statement)
156
    }
150
    }
Línea 157... Línea 151...
157
 
151
 
Línea 161... Línea 155...
161
            " WHERE " + Constants.TABLE_QUESTION_FIELD_UUID + " = '\(uuid)' ;"
155
            " WHERE " + Constants.TABLE_QUESTION_FIELD_UUID + " = '\(uuid)' ;"
162
        var statement : OpaquePointer? = nil
156
        var statement : OpaquePointer? = nil
163
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
157
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
164
            if sqlite3_step(statement) != SQLITE_DONE {
158
            if sqlite3_step(statement) != SQLITE_DONE {
165
                print("No se pudo borrar el registro con el uuid: \(uuid) en la tabla: \(Constants.TABLE_QUESTION)")
159
                print("No se pudo borrar el registro con el uuid: \(uuid) en la tabla: \(Constants.TABLE_QUESTION)")
166
                database.printError()
-
 
-
 
160
               
167
            }
161
            }
168
        } else {
162
        } else {
169
            print("No se pudo prepara el borrar de un registro con el uuid: \(uuid) en la tabla: \(Constants.TABLE_QUESTION)" )
163
            print("No se pudo prepara el borrar de un registro con el uuid: \(uuid) en la tabla: \(Constants.TABLE_QUESTION)" )
170
            database.printError()
-
 
-
 
164
           
171
        }
165
        }
172
        sqlite3_finalize(statement)
166
        sqlite3_finalize(statement)
173
    }
167
    }
Línea 174... Línea 168...
174
 
168
 
Línea 177... Línea 171...
177
        let query = "DELETE FROM " + Constants.TABLE_QUESTION + ";"
171
        let query = "DELETE FROM " + Constants.TABLE_QUESTION + ";"
178
        var statement : OpaquePointer? = nil
172
        var statement : OpaquePointer? = nil
179
        if sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK{
173
        if sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK{
180
            if sqlite3_step(statement) != SQLITE_DONE {
174
            if sqlite3_step(statement) != SQLITE_DONE {
181
                print("No se pudo borrar todos los registros de la tabla: \(Constants.TABLE_QUESTION)")
175
                print("No se pudo borrar todos los registros de la tabla: \(Constants.TABLE_QUESTION)")
182
                database.printError()
-
 
-
 
176
               
183
            }
177
            }
184
        } else {
178
        } else {
185
            print("No se pudo preparar el borrar todos los registros de la tabla: \(Constants.TABLE_QUESTION)")
179
            print("No se pudo preparar el borrar todos los registros de la tabla: \(Constants.TABLE_QUESTION)")
186
            database.printError()
-
 
-
 
180
           
187
        }
181
        }
188
        sqlite3_finalize(statement)
182
        sqlite3_finalize(statement)
189
    }
183
    }
Línea 190... Línea 184...
190
    
184