This commit is contained in:
yumoqing 2019-06-03 18:07:21 +08:00
parent 7a3a3836bb
commit abff571985
13 changed files with 1050 additions and 1024 deletions

View File

@ -196,9 +196,11 @@ class DBPools:
sor = await self.getSqlor(dbname)
try:
ret = await func(sor,dbname,*args,**kw)
await sor.conn.commit()
return ret
except Exception as e:
print('error',sor)
sor.conn.rollback()
raise e
finally:
await self.freeSqlor(sor)
@ -209,19 +211,21 @@ class DBPools:
@wraps(func)
async def wrap_func(dbname,NS,callback=None,**kw):
sor = await self.getSqlor(dbname)
ret = None
try:
desc = func(dbname,NS,callback=callback,**kw)
ret = await sor.runSQL(desc,NS,callback,**kw)
await sor.conn.commit()
if NS.get('dummy'):
return NS['dummy']
else:
return []
except Exception as e:
print('error:',e)
await sor.conn.rollback()
raise e
finally:
await self.freeSqlor(sor)
return ret
return wrap_func
def runSQLPaging(self,func):

View File

@ -160,14 +160,14 @@ class SQLor(object):
markedSQL,datas = self.maskingSQL(sql,NS)
datas = self.dataConvert(datas)
try:
markedSQL = markedSQL.encode('utf8')
# markedSQL = markedSQL.encode('utf8')
if self.async_mode:
await cursor.execute(markedSQL,datas)
else:
cursor.execute(markedSQL,datas)
except Exception as e:
print( "markedSQL=",markedSQL,datas,e)
print( "markedSQL=",markedSQL,':',datas,':',e)
raise e
return

View File

@ -3,6 +3,18 @@ import asyncio
from sqlor.dbpools import DBPools
dbs={
"tasks":{
"driver":"aiomysql",
"async_mode":True,
"coding":"utf8",
"dbname":"tasks",
"kwargs":{
"user":"test",
"db":"tasks",
"password":"test123",
"host":"localhost"
}
},
"aiocfae":{
"driver":"aiomysql",
"async_mode":True,
@ -39,4 +51,14 @@ async def testfunc():
}
x = await sql('cfae',{},print)
async def testfunc1():
@pool.runSQL
def sql(db,ns,callback):
return {
"sql_string":"select * from timeobjects",
}
print('testfunc1(),test tasks database select')
x = await sql('tasks',{},print)
loop.run_until_complete(testfunc())
loop.run_until_complete(testfunc1())