This commit is contained in:
yumoqing 2024-07-14 20:35:54 +08:00
parent 023999cf0d
commit bcf6a4ac2a

View File

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