This commit is contained in:
yumoqing 2024-07-23 18:03:02 +08:00
parent bcf6a4ac2a
commit 34121108d1

View File

@ -14,7 +14,7 @@ from appPublic.unicoding import uDict
from appPublic.myTE import MyTemplateEngine from appPublic.myTE import MyTemplateEngine
from appPublic.objectAction import ObjectAction from appPublic.objectAction import ObjectAction
from appPublic.argsConvert import ArgsConvert,ConditionConvert from appPublic.argsConvert import ArgsConvert,ConditionConvert
from appPublic.registerfunction import RegisterFunction from appPublic.registerfunction import RegisterCoroutine
from appPublic.log import info from appPublic.log import info
from .filter import DBFilter from .filter import DBFilter
@ -607,16 +607,11 @@ class SQLor(object):
fns = ','.join(fields) fns = ','.join(fields)
vfns = ','.join(['${%s}$' % n for n in fields ]) vfns = ','.join(['${%s}$' % n for n in fields ])
sql = 'insert into %s.%s (%s) values (%s)' % (self.dbname, tablename,fns,vfns) sql = 'insert into %s.%s (%s) values (%s)' % (self.dbname, tablename,fns,vfns)
rf = RegisterFunction() rf = RegisterCoroutine()
rfname = f'{self.dbname}:{tablename}:c:before' rfname = f'{self.dbname}:{tablename}:c:before'
info(f'{rfname=}') ns = await rf.exe(rfname, ns)
func = rf.get(rfname)
if func:
ns = func(ns)
r = await self.runSQL({'sql_string':sql},ns,None) r = await self.runSQL({'sql_string':sql},ns,None)
func = rf.get(f'{self.dbname}:{tablename}:c:after') await rf.exe(f'{self.dbname}:{tablename}:c:after', ns)
if func:
ns = func(ns)
return r return r
async def R(self,tablename,ns,filters=None): async def R(self,tablename,ns,filters=None):
@ -662,14 +657,12 @@ class SQLor(object):
u_str = ','.join(u) u_str = ','.join(u)
sql = 'update %s.%s set %s where %s' % (self.dbname, tablename, sql = 'update %s.%s set %s where %s' % (self.dbname, tablename,
u_str,c_str) u_str,c_str)
rf = RegisterFunction() rf = RegisterCoroutine()
func = rf.get(f'{self.dbname}:{tablename}:u:before') ns = await rf.exe(f'{self.dbname}:{tablename}:u:before',ns)
if func: if func:
ns = func(ns) ns = func(ns)
r = await self.runSQL({'sql_string':sql},ns,None) r = await self.runSQL({'sql_string':sql},ns,None)
func = rf.get(f'{self.dbname}:{tablename}:u:after') await rf.exe(f'{self.dbname}:{tablename}:u:after',ns)
if func:
ns = func(ns)
return r return r
async def D(self,tablename,ns): async def D(self,tablename,ns):
@ -679,13 +672,9 @@ class SQLor(object):
c = [ '%s = ${%s}$' % (i,i) for i in condi ] c = [ '%s = ${%s}$' % (i,i) for i in condi ]
c_str = ' and '.join(c) c_str = ' and '.join(c)
sql = 'delete from %s.%s where %s' % (self.dbname, tablename,c_str) sql = 'delete from %s.%s where %s' % (self.dbname, tablename,c_str)
rf = RegisterFunction() rf = RegisterCoroutine()
func = rf.get(f'{self.dbname}:{tablename}:d:before') ns = await rf.exe(f'{self.dbname}:{tablename}:d:before', ns)
if func:
ns = func(ns)
r = await self.runSQL({'sql_string':sql},ns,None) r = await self.runSQL({'sql_string':sql},ns,None)
func = rf.get(f'{self.dbname}:{tablename}:d:after') ns = await rf.get(f'{self.dbname}:{tablename}:d:after', ns)
if func:
ns = func(ns)
return r return r