Proyectos de Subversion Iphone Microlearning - Inconcert

Rev

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

Rev 15 Rev 17
Línea 6... Línea 6...
6
//
6
//
Línea 7... Línea 7...
7
 
7
 
8
import Foundation
8
import Foundation
Línea 9... Línea 9...
9
import SQLite3
9
import SQLite3
Línea 10... Línea -...
10
 
-
 
-
 
10
 
11
class Database {
11
class Database : ObservableObject {
-
 
12
 
Línea 12... Línea 13...
12
 
13
 
13
 
14
 
Línea 14... Línea 15...
14
    private var path : String = Constants.DATABASE_NAME
15
    @Published var db : OpaquePointer? = nil
Línea 39... Línea 40...
39
            self.createTableUserNotification()
40
            self.createTableUserNotification()
40
        }
41
        }
41
    }
42
    }
Línea 42... Línea 43...
42
 
43
 
43
    public func open() -> OpaquePointer? {
-
 
44
        
44
    public func open() -> OpaquePointer? {
45
        if self.db == nil {
45
        if self.db == nil {
46
        
46
            
47
            let filePath = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
47
            let filePath = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
48
                    .appendingPathComponent(path)
-
 
Línea 49... Línea -...
49
                
-
 
50
            
48
                .appendingPathComponent(Config.DATABASE_FILENAME)
-
 
49
            
-
 
50
            if sqlite3_open(filePath.path, &self.db) == SQLITE_OK {
-
 
51
                
51
                
52
                self.createTables();
52
            if sqlite3_open(filePath.path, &self.db) == SQLITE_OK {
53
                
Línea 53... Línea 54...
53
                print("Se abrio la conexión con la db : \(path) ")
54
                print("Se abrio la conexión con la db : \(filePath.absoluteString) ")
54
                return conn
55
                return self.db
55
                
56
                
56
            } else {
57
            } else {
-
 
58
                print("No se pudo abrir la db : \(filePath.absoluteString) ")
-
 
59
                return nil
57
                print("No se pudo abrir la db : \(path) ")
60
            }
Línea -... Línea 61...
-
 
61
        } else {
Línea 58... Línea 62...
58
                return nil
62
            return self.db
Línea 59... Línea 63...
59
            }
63
        }
60
        }
64
 
Línea 78... Línea 82...
78
        }
82
        }
79
    }
83
    }
Línea 80... Línea 84...
80
    
84
    
81
    
85
    
Línea 82... Línea 86...
82
    
86
    
83
    func executeMultiQuery(queries: [String]) -> Bool {
87
    private func executeMultiQuery(queries: [String]) -> Void {
Línea 84... Línea 88...
84
        
88
 
85
        
89
        
86
        queries.forEach { query in
-
 
87
            var statement : OpaquePointer? = nil
-
 
88
            
90
        for query  in queries {
89
            if sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK {
-
 
90
                if sqlite3_step(statement) == SQLITE_DONE {
91
            var statement : OpaquePointer? = nil
91
                    return true
92
            
92
                } else {
93
            if sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK {
93
                    print("Fallo la consulta: \(query) ")
-
 
94
                    return false
-
 
95
                }
-
 
96
            } else {
94
                if sqlite3_step(statement) != SQLITE_DONE {
97
                print("Fallo la preparación: \(query) ")
-
 
98
                
95
                    print("Fallo la consulta: \(query) ")
99
                return false
96
                }
Línea 100... Línea 97...
100
                
97
            } else {