Python pymssql 尝试启动新的 Adaptive Server 操作,但结果未决

Posted

技术标签:

【中文标题】Python pymssql 尝试启动新的 Adaptive Server 操作,但结果未决【英文标题】:Python pymssql Attempt to initiate a new Adaptive Server operation with results pending 【发布时间】:2016-04-19 00:34:41 【问题描述】:

我有一个 Python 脚本,它使用套接字和线程来允许 10 个服务器连接到一个端口。每个服务器转储一串数据。有时数据会迅速进入,而有时它会涓涓细流。

Python 脚本获取数据 blob,对子字符串进行计数以获取“列”值,然后使用 pymssql 将其发送到 MSSQL。非常直接。

这是脚本的 MSSQL 部分的 sn-p:

dbConn = pymssql.connect(server=mssql_server, user=mssql_user, password=mssql_pass, database=mssql_db)
cursor = dbConn.cursor()

date = data[0:6]
time = data[7:11]
duration = data[12:16]

mssql_output_raw = "('%s','%s','%s');" % (date, time, duration)
mssql_output = mssql_output_raw.replace(" ", "") # Remove any whitespace

# Write to MSSQL table
try:
    query = "INSERT INTO %s VALUES %s" % (mssql_table, mssql_output)
    cursor.execute( query )
    dbConn.commit()
except pymssql.OperationalError as e:
    logmsg("pymssql.OperationalError exception caught: %s" % str(e).replace("\n", " ") )
except:
    pass

每隔一段时间(也许是在数据快速进来的时候?)我会得到这个例外:

20019, 
'DB-Lib error message 20019, severity 7:
Attempt to initiate a new Adaptive Server operation with results pending

脚本不会崩溃,因为脚本是 a) 在后台运行的;或b)在前台但喷出数据,我不确定数据是否会进入MSSQL。

谁能分享这个错误的含义?

【问题讨论】:

【参考方案1】:

我可能已经想通了。在我的脚本中,我使用线程。所有线程都有 1 个 SQL 连接器。我的猜测是,一个 SQL 连接器被所有查询压得喘不过气来。

我已经更新了我的脚本,以便每个线程都有自己的连接器。到目前为止一切顺利。

【讨论】:

以上是关于Python pymssql 尝试启动新的 Adaptive Server 操作,但结果未决的主要内容,如果未能解决你的问题,请参考以下文章

在 Mac OS X Lion 上安装 pymssql 时出错

Linux下安装pymssql及简单尝试

Python pymssql:Adaptive Server 连接失败

pymssql(python 模块)无法使用临时表

Python 2.7 pyodbc 或 pymssql 与 R RODBC

Python的pymssql库中的UnicodeDecodeError