import sys
import json
import pyodbc

# Uso: python3 consulta_sqlserver.py <host> <usuario> <contrasena> <basedatos> <consulta_sql>
if len(sys.argv) < 6:
    print(json.dumps({'error': 'Faltan argumentos'}))
    sys.exit(1)

host = sys.argv[1]
usuario = sys.argv[2]
contrasena = sys.argv[3]
basedatos = sys.argv[4]
consulta = sys.argv[5]

try:
    conn_str = (
        f'DRIVER={{ODBC Driver 17 for SQL Server}};'
        f'SERVER={host};DATABASE={basedatos};UID={usuario};PWD={contrasena};TrustServerCertificate=yes;'
    )
    conn = pyodbc.connect(conn_str, timeout=5)
    cursor = conn.cursor()
    cursor.execute(consulta)
    columns = [column[0] for column in cursor.description]
    data = [dict(zip(columns, row)) for row in cursor.fetchall()]
    print(json.dumps({'data': data}, ensure_ascii=False))
    cursor.close()
    conn.close()
except Exception as e:
    print(json.dumps({'error': str(e)}))
    sys.exit(1)
