#decorators
def Query(fn):
"""查询装饰器"""
def wrapper(*args, **kv):
conn=connect()
kv['conn']=conn
cur=conn.cursor()
cur.execute('SET NOCOUNT ON;')
try:
return fn(*args, **kv)
except:
LogErr()
raise
finally:
cur.execute('SET NOCOUNT OFF;')
conn.close()
return wrapper
def Execute(fn):
"""增加 删除 修改 装饰器"""
def wrapper(*args, **kv):
conn=connect()
kv['conn']=conn
cur=conn.cursor()
cur.execute('SET NOCOUNT ON;')
try:
result= fn(*args, **kv)
conn.commit()
return result
except:
conn.rollback()
LogErr()
raise
finally:
cur.execute('SET NOCOUNT OFF;')
conn.close()
return wrapper
class Queryer:
def __init__(self,conn=None,close=True):
self.conn=connect() if not conn else conn
self.cur=self.conn.cursor()
self.close=close
self.cur.execute('SET NOCOUNT ON;')
def __enter__(self):
return self.conn
def __exit__(self, type, value, traceback):
if type and value and traceback:
LogErr()
if self.close:
self.cur.execute('SET NOCOUNT OFF;')
self.conn.close()
class Executer:
def __init__(self,conn=None,close=True):
self.conn=connect() if not conn else conn
self.cur=self.conn.cursor()
self.close=close
self.cur.execute('SET NOCOUNT ON;')
def __enter__(self):
return self.conn
def __exit__(self, type, value, traceback):
if type and value and traceback:
LogErr()
self.conn.rollback()
else:
self.conn.commit()
if self.close:
self.cur.execute('SET NOCOUNT OFF;')
self.conn.close()
python装饰器
最新推荐文章于 2023-06-20 22:11:03 发布