Proyectos de Subversion Iphone Microlearning - Nuevo Interface

Rev

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

Rev 1 Rev 19
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 QuizDao {
11
class QuizDao {
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...
13
    private var db : OpaquePointer?
13
    private var database = Database.sharedInstance
14
    
14
    
Línea 15... Línea 15...
15
    static let sharedInstance: QuizDao = {
15
    static let sharedInstance: QuizDao = {
16
           let instance = QuizDao()
16
           let instance = QuizDao()
17
           
17
           
18
           // setup code
18
           // setup code
19
           return instance
-
 
20
    }()
-
 
21
    
-
 
Línea 22... Línea 19...
22
    init() {
19
           return instance
-
 
20
    }()
23
        self.db = Database.sharedInstance.open()
21
 
24
    }
22
    
25
    
23
    func selectByUuid(uuid: String)-> QuizModel {
26
    func selectByUuid(uuid: String)-> QuizModel {
24
        let db = database.open()
27
        var model = QuizModel()
25
        var model = QuizModel()
Línea 51... Línea 49...
51
                model.maxTime = Int(sqlite3_column_int(statement, 7))
49
                model.maxTime = Int(sqlite3_column_int(statement, 7))
52
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 8)))
50
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 8)))
53
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 9)))
51
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 9)))
Línea 54... Línea 52...
54
                   
52
                   
-
 
53
            }
-
 
54
        } else {
55
            }
55
            database.printError()
56
        }
56
        }
57
        sqlite3_finalize(statement)
57
        sqlite3_finalize(statement)
58
        return model
58
        return model
Línea 59... Línea 59...
59
    }
59
    }
-
 
60
        
60
        
61
    func insert(quiz: QuizModel) {
61
    func insert(quiz: QuizModel) {
62
        let db = database.open()
62
        var query = "INSERT INTO " + Constants.TABLE_QUIZ
63
        var query = "INSERT INTO " + Constants.TABLE_QUIZ
63
        query = query + " ( " + Constants.TABLE_QUIZ_FIELD_UUID + ", "
64
        query = query + " ( " + Constants.TABLE_QUIZ_FIELD_UUID + ", "
64
        query = query + Constants.TABLE_QUIZ_FIELD_COMPANY_UUID + ", "
65
        query = query + Constants.TABLE_QUIZ_FIELD_COMPANY_UUID + ", "
Línea 87... Línea 88...
87
            sqlite3_bind_text(statement, 9, quiz.addedOn , -1, SQLITE_TRANSIENT)
88
            sqlite3_bind_text(statement, 9, quiz.addedOn , -1, SQLITE_TRANSIENT)
88
            sqlite3_bind_text(statement, 10, quiz.updatedOn , -1, SQLITE_TRANSIENT)
89
            sqlite3_bind_text(statement, 10, quiz.updatedOn , -1, SQLITE_TRANSIENT)
Línea 89... Línea 90...
89
 
90
 
90
            if (sqlite3_step(statement) != SQLITE_DONE) {
91
            if (sqlite3_step(statement) != SQLITE_DONE) {
-
 
92
                print("No se pudo insertar un registro en la tabla: \(Constants.TABLE_QUIZ)")
91
                print("No se pudo insertar un registro en la tabla: \(Constants.TABLE_QUIZ)")
93
                database.printError()
Línea 92... Línea 94...
92
            }
94
            }
93
           
95
           
-
 
96
        } else {
94
        } else {
97
            print("Fallo la preparación para insertar un registro en la tabla: \(Constants.TABLE_QUIZ)")
Línea 95... Línea 98...
95
            print("Fallo la preparación para insertar un registro en la tabla: \(Constants.TABLE_QUIZ)")
98
            database.printError()
96
        }
99
        }
Línea 97... Línea 100...
97
       
100
       
-
 
101
        sqlite3_finalize(statement)
98
        sqlite3_finalize(statement)
102
    }
99
    }
103
 
100
 
104
    func update(quiz : QuizModel) {
101
    func update(quiz : QuizModel) {
105
        let db = database.open()
102
        var query = "UPDATE " + Constants.TABLE_QUIZ
106
        var query = "UPDATE " + Constants.TABLE_QUIZ
Línea 111... Línea 115...
111
        query = query + " WHERE " + Constants.TABLE_COMPANY_FIELD_UUID + " = '\(quiz.uuid)';"
115
        query = query + " WHERE " + Constants.TABLE_COMPANY_FIELD_UUID + " = '\(quiz.uuid)';"
112
        var statement : OpaquePointer? = nil
116
        var statement : OpaquePointer? = nil
113
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
117
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
114
            if (sqlite3_step(statement) != SQLITE_DONE) {
118
            if (sqlite3_step(statement) != SQLITE_DONE) {
115
                print("No se pudo actualizar un registro de la tabla: \(Constants.TABLE_QUIZ) ")
119
                print("No se pudo actualizar un registro de la tabla: \(Constants.TABLE_QUIZ) ")
-
 
120
                database.printError()
116
            }
121
            }
117
        } else {
122
        } else {
118
            print("Fallo la preparación para actualizar un registro de la tabla: \(Constants.TABLE_QUIZ)")
123
            print("Fallo la preparación para actualizar un registro de la tabla: \(Constants.TABLE_QUIZ)")
-
 
124
            database.printError()
119
        }
125
        }
120
        sqlite3_finalize(statement)
126
        sqlite3_finalize(statement)
121
    }
127
    }
Línea 122... Línea 128...
122
 
128
 
-
 
129
    func remove(uuid: String) {
123
    func remove(uuid: String) {
130
        let db = database.open()
124
        let query = "DELETE FROM " + Constants.TABLE_QUIZ +
131
        let query = "DELETE FROM " + Constants.TABLE_QUIZ +
125
            " WHERE " + Constants.TABLE_QUIZ_FIELD_UUID + " = '\(uuid)' ;"
132
            " WHERE " + Constants.TABLE_QUIZ_FIELD_UUID + " = '\(uuid)' ;"
126
        var statement : OpaquePointer? = nil
133
        var statement : OpaquePointer? = nil
127
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
134
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
128
            if (sqlite3_step(statement) != SQLITE_DONE) {
135
            if (sqlite3_step(statement) != SQLITE_DONE) {
-
 
136
                print("No se pudo borrar el registro con el uuid: \(uuid)  de la tabla: \(Constants.TABLE_QUIZ)")
129
                print("No se pudo borrar el registro con el uuid: \(uuid)  de la tabla: \(Constants.TABLE_QUIZ)")
137
                database.printError()
130
            }
138
            }
131
        } else {
139
        } else {
-
 
140
            print("Fallo la preparación para borrar el registro con el uuid: \(uuid) de la tabla \(Constants.TABLE_QUIZ) ")
132
            print("Fallo la preparación para borrar el registro con el uuid: \(uuid) de la tabla \(Constants.TABLE_QUIZ) ")
141
            database.printError()
133
        }
142
        }
134
        sqlite3_finalize(statement)
143
        sqlite3_finalize(statement)
Línea 135... Línea 144...
135
    }
144
    }
-
 
145
 
136
 
146
    func removeAll() {
137
    func removeAll() {
147
        let db = database.open()
138
        let query = "DELETE FROM " + Constants.TABLE_QUIZ + ";"
148
        let query = "DELETE FROM " + Constants.TABLE_QUIZ + ";"
139
        var statement : OpaquePointer? = nil
149
        var statement : OpaquePointer? = nil
140
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
150
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
-
 
151
            if (sqlite3_step(statement) != SQLITE_DONE) {
141
            if (sqlite3_step(statement) != SQLITE_DONE) {
152
                print("No se pudo borrar todos los registros de la tabla: \(Constants.TABLE_QUIZ) ")
142
                print("No se pudo borrar todos los registros de la tabla: \(Constants.TABLE_QUIZ) ")
153
                database.printError()
143
            }
154
            }
-
 
155
        } else {
144
        } else {
156
            print("Fallo la preparación de borrar todos los registros de la tabla: \(Constants.TABLE_QUIZ)")
145
            print("Fallo la preparación de borrar todos los registros de la tabla: \(Constants.TABLE_QUIZ)")
157
            database.printError()
146
        }
158
        }
Línea 147... Línea 159...
147
        sqlite3_finalize(statement)
159
        sqlite3_finalize(statement)