gpt4 book ai didi

python - 数据库错误 : ('HY000' , '[HY000] [Microsoft][ODBC SQL Server Driver]Connection is busy with results for another hstmt (0) (SQLExecDirectW)' )

转载 作者:行者123 更新时间:2023-12-04 12:06:53 25 4
gpt4 key购买 nike

我正在尝试将数据从 SQL 服务器读取到 Pandas 数据框中。下面是代码。

def get_data(size):
con = pyodbc.connect(r'driver={SQL Server}; server=SPROD_RPT01; database=Reporting')
cur = con.cursor()
db_cmd = "select distinct top %s * from dbo.KrishAnalyticsAllCalls" %size
res = cur.execute(db_cmd)
sql_out = pd.read_sql_query(db_cmd, con, chunksize=10**6)
frames = [chunk for chunk in sql_out]
df_sql = pd.concat(frames)
return df_sql

df = get_data(5000000)
我收到以下错误:

pandas.io.sql.DatabaseError: Execution failed on sql 'select distincttop 500000 * from dbo.KrishAnalyticsAllCalls': ('HY000', '[HY000][Microsoft][ODBC SQL Server Driver]Connection is busy with results foranother hstmt (0) (SQLExecDirectW)')


我之前执行过该函数并用 ctrl+k 中断了执行因为我想对功能进行更改。现在,当我尝试执行该函数时进行更改后,我收到了上述错误。
由于我不知道在函数中执行查询的任何 IPython 内核,我该如何终止该连接/IPython 内核?

最佳答案

我面临同样的问题。这是在我使用 fetchall() 时修复的功能。以下是我使用的代码。

import pypyodbc as pyodbc

def connect(self, query):
con = pyodbc.connect(self.CONNECTION_STRING)
cursor = con.cursor()
print('Connection to db successful')
cmd = (query)
results = cursor.execute(cmd).fetchall()
df = pd.read_sql(query, con)
return df, results

使用 cursor.execute(cmd).fetchall()而不是 cursor.execute(cmd)解决了。
希望这可以帮助。

关于python - 数据库错误 : ('HY000' , '[HY000] [Microsoft][ODBC SQL Server Driver]Connection is busy with results for another hstmt (0) (SQLExecDirectW)' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47355141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com