我使用pyodbc连接到服务器,并使用pandas.read_sql方法将数据拉入数据帧。然后,我用这些数据框中的数据填充报告。我要确保除非绝对需要,否则我不会在不关闭数据库的情况下创建与数据库的多个连接。
当前我得到了想要的结果,但是我的代码连接到数据库的次数过多,从而增加了开销,阻塞了进程等。
def connect_db(server=server_name):
config = {
'DRIVER': '{ODBC Driver 13 for SQL Server}',
'TRUSTED_CONNECTION': 'Yes',
'SERVER': server
}
conn = pyodbc.connect(**config)
return conn
def pull_sales(conn=connect_db()):
with open(sales_query) as f:
sales_sql = sales_query
data = pd.read_sql(sales_sql, conn)
return data
def pull_employees(conn=connect_db()):
with open(employee_query) as f:
employee_sql = employee_query
data = pd.read_sql(employee_sql, conn)
return data
如上所述,如何仍能提取员工和销售数据,同时确保在不关闭它们的情况下不创建多个连接?谢谢!