(20241129) Commit option added in SQL v2 file.
This commit is contained in:
@@ -191,12 +191,18 @@ class AsyncMySQL:
|
||||
# Done here:
|
||||
return all_result_sets
|
||||
|
||||
async def call_procedure(self, procedure_name, procedure_args):
|
||||
async def call_procedure(
|
||||
self,
|
||||
procedure_name: str,
|
||||
procedure_args: tuple,
|
||||
commit: bool = True
|
||||
):
|
||||
|
||||
"""
|
||||
To call stored procedures and retrieve all the responses.
|
||||
:param procedure_name: The name of the stored procedure that must be called.
|
||||
:param procedure_args: The args to be sent to the stored procedure.
|
||||
:param commit: Whether, or not, you would like to commit the execution.
|
||||
:return: The raw result set as received from the database.
|
||||
"""
|
||||
|
||||
@@ -212,6 +218,7 @@ class AsyncMySQL:
|
||||
async with connection.cursor() as cursor:
|
||||
await cursor.callproc(procedure_name, procedure_args)
|
||||
all_result_sets = await self.fetch_all(cursor)
|
||||
if commit: await connection.commit()
|
||||
|
||||
# # Iterate over all result sets,
|
||||
# # and process them one-by-one:
|
||||
@@ -231,6 +238,7 @@ class AsyncMySQL:
|
||||
self,
|
||||
procedure_name,
|
||||
procedure_args,
|
||||
commit: bool = True,
|
||||
retry_count = 1,
|
||||
backoff_seconds = 0.5,
|
||||
backoff_multiplier = 1.1,
|
||||
@@ -242,6 +250,7 @@ class AsyncMySQL:
|
||||
This is custom formatting based on the structure created by Mr. bhushan Thakkar in late April (2024).
|
||||
:param procedure_name: The name of the stored procedure that must be called.
|
||||
:param procedure_args: The args to be sent to the stored procedure.
|
||||
:param commit: Whether, or not, you would like to commit the execution.
|
||||
:param retry_count: The max. number of times to try in case one or more attempts fail.
|
||||
:param backoff_seconds: The time to wait before making the next attempt if the retry count is more than 1.
|
||||
:param backoff_multiplier: The factor that dictates how much to modify the time delay by when waiting to retry.
|
||||
@@ -259,6 +268,7 @@ class AsyncMySQL:
|
||||
try: results = await self.call_procedure(
|
||||
procedure_name = procedure_name,
|
||||
procedure_args = procedure_args,
|
||||
commit = commit
|
||||
)
|
||||
except Exception as exc: exception = exc
|
||||
if exception is None: break
|
||||
|
||||
Reference in New Issue
Block a user