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 AnswerDao {
11
class AnswerDao {
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
    
-
 
16
    static let sharedInstance: AnswerDao = {
-
 
17
           let instance = AnswerDao()
-
 
18
           
-
 
19
           // setup code
-
 
20
           return instance
-
 
21
    }()
-
 
22
    
13
    private let db : OpaquePointer?
23
 
-
 
24
    func insert(answer : AnswerModel) {
14
    
25
        let db = database.open()
15
    func insert(answer : AnswerModel) {
26
        
16
    
27
        var query = "INSERT INTO " + Constants.TABLE_ANSWER + " ( "
17
        var query = "INSERT INTO " + Constants.TABLE_ANSWER + " ( "
28
        query = query + Constants.TABLE_ANSWER_FIELD_UUID + ", "
18
        query = query + Constants.TABLE_ANSWER_FIELD_UUID + ", "
29
        query = query + Constants.TABLE_ANSWER_FIELD_QUESTION_UUID + ", "
19
        query = query + Constants.TABLE_ANSWER_FIELD_QUESTION_UUID + ", "
Línea 45... Línea 35...
45
            sqlite3_bind_text(statement, 7, answer.updatedOn , -1, SQLITE_TRANSIENT)
35
            sqlite3_bind_text(statement, 7, answer.updatedOn , -1, SQLITE_TRANSIENT)
Línea 46... Línea 36...
46
 
36
 
47
 
37
 
48
           if sqlite3_step(statement) != SQLITE_DONE {
-
 
-
 
38
           if sqlite3_step(statement) != SQLITE_DONE {
49
                print("No se pudo insertar un registro en la tabla: \(Constants.TABLE_ANSWER) ")
39
                print("No se pudo insertar un registro en la tabla: \(Constants.TABLE_ANSWER) ")
Línea 50... Línea 40...
50
                database.printError()
40
               
51
           }
41
           }
52
           
-
 
-
 
42
           
53
        } else {
43
        } else {
Línea 54... Línea 44...
54
            print("Fallo la preparación del insertar en la tabla: \(Constants.TABLE_ANSWER)")
44
            print("Fallo la preparación del insertar en la tabla: \(Constants.TABLE_ANSWER)")
55
            database.printError()
45
           
Línea 56... Línea 46...
56
        }
46
        }
57
       
-
 
-
 
47
       
58
        sqlite3_finalize(statement)
48
        sqlite3_finalize(statement)
Línea 59... Línea 49...
59
     }
49
     }
60
    
50
    
61
    
51
    
Línea 89... Línea 79...
89
                
79
                
Línea 90... Línea 80...
90
                records.append(model)
80
                records.append(model)
91
                
81
                
92
            }
-
 
-
 
82
            }
93
        } else {
83
        } else {
94
            database.printError()
84
           
95
        }
85
        }
96
        sqlite3_finalize(statement)
86
        sqlite3_finalize(statement)
Línea 97... Línea 87...
97
        return records
87
        return records
98
    }
-
 
-
 
88
    }
99
    
89
    
100
    func selectByUuid(uuid : String) -> AnswerModel {
90
    func selectByUuid(uuid : String) -> AnswerModel {
101
        let db = database.open()
91
        
102
        var model = AnswerModel()
92
        var model = AnswerModel()
103
        var query = "SELECT " + Constants.TABLE_ANSWER_FIELD_UUID + " , "
93
        var query = "SELECT " + Constants.TABLE_ANSWER_FIELD_UUID + " , "
Línea 121... Línea 111...
121
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 5)))
111
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 5)))
122
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 6)))
112
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 6)))
Línea 123... Línea 113...
123
               
113
               
124
            }
114
            }
125
        } else {
-
 
-
 
115
        } else {
126
            database.printError()
116
           
127
        }
117
        }
128
        sqlite3_finalize(statement)
118
        sqlite3_finalize(statement)
129
        return model
119
        return model
Línea 130... Línea 120...
130
    }
120
    }
131
    
-
 
-
 
121
    
132
    func update( answerModel: AnswerModel) {
122
    func update( answerModel: AnswerModel) {
133
        let db = database.open()
123
        
134
        var query = "UPDATE" + Constants.TABLE_SYNC
124
        var query = "UPDATE" + Constants.TABLE_SYNC
135
        query = query + " SET " + Constants.TABLE_ANSWER_FIELD_TEXT + " =  ?, "
125
        query = query + " SET " + Constants.TABLE_ANSWER_FIELD_TEXT + " =  ?, "
136
        query = query + Constants.TABLE_ANSWER_FIELD_POINTS + " = ?, "
126
        query = query + Constants.TABLE_ANSWER_FIELD_POINTS + " = ?, "
Línea 148... Línea 138...
148
            sqlite3_bind_text(statement, 4, answerModel.updatedOn, -1, SQLITE_TRANSIENT)
138
            sqlite3_bind_text(statement, 4, answerModel.updatedOn, -1, SQLITE_TRANSIENT)
149
            sqlite3_bind_text(statement, 5, answerModel.uuid, -1, SQLITE_TRANSIENT)
139
            sqlite3_bind_text(statement, 5, answerModel.uuid, -1, SQLITE_TRANSIENT)
Línea 150... Línea 140...
150
            
140
            
151
            if sqlite3_step(statement) != SQLITE_DONE {
141
            if sqlite3_step(statement) != SQLITE_DONE {
152
                print("No se pudo actualizar un registro de la tabla: \(Constants.TABLE_ANSWER)")
-
 
-
 
142
                print("No se pudo actualizar un registro de la tabla: \(Constants.TABLE_ANSWER)")
153
                database.printError()
143
               
154
            }
144
            }
155
        } else {
145
        } else {
156
            print("Fallo la preparación de actualizar un registro en la tabla: \(Constants.TABLE_ANSWER)")
-
 
-
 
146
            print("Fallo la preparación de actualizar un registro en la tabla: \(Constants.TABLE_ANSWER)")
157
            database.printError()
147
           
158
        }
148
        }
159
        sqlite3_finalize(statement)
149
        sqlite3_finalize(statement)
Línea 160... Línea 150...
160
    }
150
    }
161
 
-
 
-
 
151
 
162
    
152
    
163
    func remove(uuid : String) {
153
    func remove(uuid : String) {
-
 
154
        
164
        let db = database.open()
155
        let query = "DELETE FROM " + Constants.TABLE_ANSWER +
165
        let query = "DELETE FROM " + Constants.TABLE_ANSWER +
156
            " WHERE " + Constants.TABLE_ANSWER_FIELD_UUID + " = '\(uuid)' ;"
166
            " WHERE " + Constants.TABLE_ANSWER_FIELD_UUID + " = '\(uuid)' ;"
157
        
167
        var statement : OpaquePointer? = nil
158
        var statement : OpaquePointer? = nil
Línea 168... Línea -...
168
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
-
 
-
 
159
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
169
            if (sqlite3_step(statement) != SQLITE_DONE) {
160
            if (sqlite3_step(statement) != SQLITE_DONE) {
170
                print("No se pudo borrar el registro con el uuid: \(uuid) de la tabla: \(Constants.TABLE_ANSWER) ")
161
                print("No se pudo borrar el registro con el uuid: \(uuid) de la tabla: \(Constants.TABLE_ANSWER) ")
171
                
162
                
Línea 172... Línea -...
172
                database.printError()
-
 
-
 
163
               
173
            }
164
            }
174
        } else {
165
        } else {
175
            print("Fallo la preparación para borrar un registro de la tabla \(Constants.TABLE_ANSWER) ")
166
            print("Fallo la preparación para borrar un registro de la tabla \(Constants.TABLE_ANSWER) ")
Línea 176... Línea 167...
176
            
167
            
177
            database.printError()
-
 
-
 
168
           
178
        }
169
        }
179
        sqlite3_finalize(statement)
170
        sqlite3_finalize(statement)
180
    }
171
    }
181
    
172
    
182
    func removeAll() {
173
    func removeAll() {
Línea 183... Línea -...
183
        let db = database.open()
-
 
-
 
174
        
184
        let query = "DELETE FROM " + Constants.TABLE_ANSWER + ";"
175
        let query = "DELETE FROM " + Constants.TABLE_ANSWER + ";"
185
        var statement : OpaquePointer? = nil
176
        var statement : OpaquePointer? = nil
186
        if sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK{
177
        if sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK{
Línea 187... Línea -...
187
            if sqlite3_step(statement) != SQLITE_DONE {
-
 
-
 
178
            if sqlite3_step(statement) != SQLITE_DONE {
188
                print("No se pudieron borrar todos los registros de la tabla: \(Constants.TABLE_ANSWER) ")
179
                print("No se pudieron borrar todos los registros de la tabla: \(Constants.TABLE_ANSWER) ")
189
                
180
                
190
                database.printError()
181
               
Línea 191... Línea 182...
191
            }
182
            }