SQL: Minor change and add exception handler.

setup.py
Pierre-Antoine Rouby 2023-11-22 14:58:03 +01:00
parent c9887a97e7
commit 7f8e8d5a9f
2 changed files with 23 additions and 6 deletions

View File

@ -177,6 +177,13 @@ class Study(SQLModel):
# SQL #
#######
def _db_insert_into_info(self, key, value, commit=False):
self.execute(
"INSERT INTO info VALUES " +
f"('{key}', '{self._db_format(value)}')",
commit=commit
)
def _create(self):
# Info (metadata)
self.execute(

View File

@ -312,19 +312,29 @@ class SQL(object):
def _db_format(self, value):
# Replace ''' by ''' to preserve SQL injection
if value is str:
if type(value) is str:
value = value.replace("'", "'")
return value
@timer
def execute(self, cmd, fetch_one=True, commit=False):
logger.debug(f"SQL - {cmd}")
value = None
try:
res = self._cur.execute(cmd)
if commit:
self._db.commit()
value = self._fetch(res, fetch_one)
except Exception as e:
logger.error(
f"[{Fore.RED}ERROR{Style.RESET_ALL}] " +
f"{Fore.RED}{e}{Style.RESET_ALL}"
)
traceback.print_exc()
finally:
return value
def _create(self):