我正在使用SQLAlchemy通过ODBC建立连接以填充Pandas数据框。但是,一段时间不使用笔记本电脑后,如果重新启动查询,则会出现以下错误:
DBAPIError :(错误)('HY000','[HY000] [Sybase] [ODBC驱动程序] [Sybase IQ]连接已终止(-308)(SQLExecDirectW)')'选择user_name()作为user_name'()
解决方案是多次(通常是3次)重新启动该语句,然后重新运行。
我的代码:
import sqlalchemy as sa
from sqlalchemy.pool import NullPool
import pandas as pd
def read_query_return_df(sql_query='SELECT \'Hello\' FROM dummy'):
engine = sa.create_engine('sybase+pyodbc://@sybaseiqdatabase', poolclass=NullPool)
connection = engine.connect()
df_sql = pd.read_sql(sql_query, engine)
connection.close()
engine.dispose()
return df_sql
我不能正确关闭连接吗?我可以关闭数据库连接以避免发生错误吗?