forked from VinokurovVE/tests
react cards and stored proc in backend
This commit is contained in:
23
backend_fastapi/stored.py
Normal file
23
backend_fastapi/stored.py
Normal file
@ -0,0 +1,23 @@
|
||||
from sqlalchemy import text
|
||||
from .database import async_session
|
||||
|
||||
async def exec_procedure(proc_name, params:dict = None, database: str = None):
|
||||
async with async_session() as session:
|
||||
sql_params = ""
|
||||
if params:
|
||||
sql_params = ",".join([f"@{key} = :{key}"
|
||||
for key, value in params.items()])
|
||||
dbstr = ""
|
||||
if database:
|
||||
dbstr = f"[{database}]."
|
||||
sql_string = text(f'''
|
||||
DECLARE @return_value int;
|
||||
EXEC @return_value = {dbstr}[dbo].[{proc_name}] {sql_params};
|
||||
SELECT 'Return Value' = @return_value;
|
||||
''')
|
||||
datas = await session.execute(
|
||||
sql_string, params)
|
||||
await session.commit()
|
||||
return [dict(data._mapping) for data in datas.fetchall()]
|
||||
|
||||
|
Reference in New Issue
Block a user