informix.py
1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import informixdb
from ..tools import get_settings
class EngInformix(object):
def __init__(self):
self.conn = None
self.database = None
self.user = None
self.password = None
settings = get_settings()
url = settings['otherdb.url']
self.dbtype, url = url.split('://')
user_pass, url = url.split('@')
self.user, self.password = user_pass.split(':')
self.server, self.database = url.split('/')
def connect(self):
self.conn = informixdb.connect(self.database, user=self.user, password=self.password)
return self.conn
def execute(self, sql):
if not self.conn:
self.connect()
cursor = self.conn.cursor(rowformat=informixdb.ROW_AS_OBJECT)
cursor.execute(sql)
self.conn.commit()
return
def fetchone(self, sql):
if not self.conn:
self.connect()
cursor = self.conn.cursor(rowformat=informixdb.ROW_AS_OBJECT)
cursor.execute(sql)
row = cursor.fetchone()
return row
def query_obj(self, sql):
if not self.conn:
self.connect()
cursor = self.conn.cursor(rowformat=informixdb.ROW_AS_OBJECT)
cursor.execute(sql)
return cursor.fetchall()
def query_dict(sql):
if not self.conn:
self.connect()
cursor = self.conn.cursor(rowformat=informixdb.ROW_AS_DICT)
cursor.execute(sql)
return cursor.fetchall()