Projekt

Obecné

Profil

Stáhnout (1.9 KB) Statistiky
| Větev: | Tag: | Revize:
1 2c96b4a5 David Friesecký
import sqlite3
2
from sqlite3 import Error
3
4
from ..constants import DATABASE_FILE
5
from ..dao.repository import IRepository
6
7
8
class DBManager(IRepository):
9
10
    def create(self, sql: str, *args) -> bool:
11
        conn = None
12
        try:
13
            sql: str = args[0]
14
            values = args[1:]
15
16
            conn = sqlite3.connect(DATABASE_FILE)
17
            c = conn.cursor()
18
            c.execute(sql, values)
19
            conn.commit()
20
            c.close()
21
        except Error as e:
22
            print(e)
23
            return False
24
        finally:
25
            if conn:
26
                conn.close()
27
        return True
28
29 61db0634 David Friesecký
    def read(self, sql: str, item_id: int = None):
30 2c96b4a5 David Friesecký
        conn = None
31
        try:
32
            conn = sqlite3.connect(DATABASE_FILE)
33
            c = conn.cursor()
34
35
            if item_id is not None:
36
                c.execute(sql, item_id)
37
            else:
38
                c.execute(sql)
39
40
            records = c.fetchall()
41
            c.close()
42
        except Error as e:
43
            print(e)
44
            return []
45
        finally:
46
            if conn:
47
                conn.close()
48
        return records
49
50 61db0634 David Friesecký
    def update(self, sql: str, *args) -> bool:
51 2c96b4a5 David Friesecký
        conn = None
52
        try:
53
            conn = sqlite3.connect(DATABASE_FILE)
54
            c = conn.cursor()
55 61db0634 David Friesecký
            c.execute(sql, args)
56 2c96b4a5 David Friesecký
            conn.commit()
57
            c.close()
58
        except Error as e:
59
            print(e)
60
            return False
61
        finally:
62
            if conn:
63
                conn.close()
64
        return True
65
66
    def delete(self, sql: str, item_id: int) -> bool:
67
        conn = None
68
        try:
69
            conn = sqlite3.connect(DATABASE_FILE)
70
            c = conn.cursor()
71
            c.execute(sql, (item_id,))
72
            conn.commit()
73
            c.close()
74
        except Error as e:
75
            print(e)
76
            return False
77
        finally:
78
            if conn:
79
                conn.close()
80
        return True