프로젝트

일반

사용자정보

통계
| 개정판:

hytos / AppDatabase.py @ ddcf0cbe

이력 | 보기 | 이력해설 | 다운로드 (2.22 KB)

1 2a9ea514 humkyung
# coding: utf-8
2
""" This is AppDatabase module """
3
4
import sqlite3
5
import pymssql
6
7
class AppDatabase:
8
    """ This is AppDatabase class """
9
    def __init__(self, type, host, user, password, db_path):
10
        self._DBType = type
11
        self._host = host
12
        self._user = user
13
        self._password = password
14
        self._db_path = db_path 
15
16
    @property
17
    def db_type(self):
18
        """ return database type """
19
        return self._DBType
20
21
    @db_type.setter
22
    def db_type(self, value):
23
        self._DBType = value
24
25
    @property
26
    def host(self):
27
        """ return host for mssql """
28
        return self._host
29
30
    @host.setter
31
    def host(self, value):
32
        self._host = value
33
34
    @property
35
    def user(self):
36
        """ return user for mssql """
37
        return self._user
38
39
    @user.setter
40
    def user(self, value):
41
        self._user = value
42
43
    @property
44
    def password(self):
45
        """ return password for mssql """
46
        return self._password
47
48
    @password.setter
49
    def password(self, value):
50
        self._password = value
51
52
    @property
53
    def db_name(self):
54
        """ return database name """
55
        return self._db_path
56
57
    @property
58
    def file_path(self):
59
        """ return sqlite database file path """
60
        return self._db_path
61
62
    @file_path.setter
63
    def file_path(self, value):
64
        self._db_path = value 
65
66
    @property
67
    def place_holder(self):
68
        """ return database placeholder """
69
        return '?' if self.db_type == 'SQLite' else '%s' if self.db_type == 'MSSQL' else None
70
71
    def connect(self):
72
        """ return database connection depends on database type """
73
        conn = None
74
        if self._DBType == 'SQLite':
75
            conn = sqlite3.connect(self.file_path, isolation_level=None)
76
            conn.row_factory = sqlite3.Row
77
            #cursor = conn.cursor()
78
        elif self._DBType == 'MSSQL':
79
            conn = pymssql.connect(host=self._host, user=self._user, password=self._password, database=self.db_name, charset='utf8', autocommit=False)
80
            #cursor = conn.cursor(as_dic=True)
81
82
        return conn
83
84
    def to_sql(self, sql):
85
        """ convert given sql string for database """
86
87
        return sql.replace('?', '%s') if self.db_type == "MSSQL" else sql
클립보드 이미지 추가 (최대 크기: 500 MB)