Proyectos de Subversion Iphone Microlearning - Inconcert

Rev

Rev 1 | Rev 16 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

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