File size: 537 Bytes
fae86c5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# handle_sql_commands.py
import duckdb
import pandas as pd
import streamlit as st


def execute_sql_duckdb(sql_command: str, dataframes: dict) -> pd.DataFrame or None:
    try:
        con = duckdb.connect(database=":memory:", read_only=False)
        for df_name, df in dataframes.items():
            con.register(df_name, df)
        result_df = con.execute(sql_command).fetchdf()
        con.close()
        return result_df
    except duckdb.Error as e:
        st.error(f"DuckDB Error: {e}")
        return None