diff --git a/app/services/firebird_service.py b/app/services/firebird_service.py index 66843fe..aeedc1c 100644 --- a/app/services/firebird_service.py +++ b/app/services/firebird_service.py @@ -1,3 +1,4 @@ +import re import fdb import datetime import decimal @@ -62,8 +63,15 @@ class FirebirdService: return False, "No hay conexión activa", [] try: cur = self.conn.cursor() - if params is not None: - cur.execute(query, params) + if params: + # fdb no soporta :name — convertir a positional ? + param_names = re.findall(r':([a-zA-Z_][a-zA-Z0-9_]*)', query) + if param_names: + positional_sql = re.sub(r':[a-zA-Z_][a-zA-Z0-9_]*', '?', query) + positional_vals = [params[n] for n in param_names] + cur.execute(positional_sql, positional_vals) + else: + cur.execute(query) else: cur.execute(query) columns = [desc[0] for desc in cur.description] if cur.description else []