python - 错误:('HY000','驱动程序没有提供错误!')
问题描述
我有 5 个不同的连接字符串存储在 connstr 列表中,我有一个表列表,其中包含存储在 templst 中的数据。所以内容看起来像
templst = [lineitem, orders, partsupp, region, cur_cur, T1, T2]
connstr = [DRIVER={libdbodbc17.so};host=lint16muthab.phl.sap.corp:8766;UID=dba;PWD=sql;CharSet=utf8, DRIVER={libdbodbc17.so};host=localhost:8767;UID=dba;PWD=sql;CharSet=utf8,
DRIVER={libdbodbc17.so};host=localhost:8768;UID=dba;PWD=sql;CharSet=utf8,
DRIVER={libdbodbc17.so};host=localhost:8769;UID=dba;PWD=sql;CharSet=utf8, DRIVER={libdbodbc17.so};host=localhost:8770;UID=dba;PWD=sql;CharSet=utf8]
现在,对于每个 connstr,我使用 db 连接打开了一个 db 连接
connvar = pyodbc.connect(connstr, autocommit=True)
对于每个连接,我都打开了一个游标并将游标对象存储在列表中。
curlst = [<pyodbc.Cursor object at 0x7fcd9b47f270> ,<pyodbc.Cursor object at 0x7fcd9b47f330> ,<pyodbc.Cursor object at 0x7fcd9b47f390>,
<pyodbc.Cursor object at 0x7fcd9b47f3f0>, <pyodbc.Cursor object at 0x7fcd9b47f450> ]
所以我为每个连接字符串有 5 个光标。
现在我想使用多处理并行运行带有这 5 个游标的每个表的查询。所以 cursor1 执行 table1 等等,直到 cursor5 到 table5 所有 5 个应该同时开始现在在 5 个游标中任何一个都可以完成,所以它应该能够立即执行 table6 等等所有表。
def extract_single(q, cursorconn):
while True:
try:
tableName = q.get_nowait()
qry2 = "Select count(*) FROM %s"%(tableName)
cursorconn.execute(qry2)
rowcnt = cursorconn.fetchone()[0]
print " rows in tempdsc=",rowcnt
print " extraction done of table:%s done by cursor:%s"%(tableName,cursorconn)
except Queue.Empty:
return
def main():
q = multiprocessing.Queue()
for item in tempdsclst:
q.put(item) # add items to queue
process = []
for i in xrange(5):
p = multiprocessing.Process(target=extract_single, args=(q, curlst[i]))
process.append(p)
p.start()
for p in process:
p.join()
它给出了类似的错误
Process Process-1:
Traceback (most recent call last):
File "/sybopt/software/python/python/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
Process Process-2:
Traceback (most recent call last):
self.run()
File "/sybopt/software/python/python/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
File "/sybopt/software/python/python/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "conn4.py", line 87, in extract_single
cursorconn.execute(qry2)
Error: ('HY000', 'The driver did not supply an error!')
self.run()
File "/sybopt/software/python/python/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "conn4.py", line 87, in extract_single
cursorconn.execute(qry2)
Error: ('HY000', 'The driver did not supply an error!')
Process Process-3:
Traceback (most recent call last):
File "/sybopt/software/python/python/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/sybopt/software/python/python/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "conn4.py", line 87, in extract_single
cursorconn.execute(qry2)
Error: ('HY000', 'The driver did not supply an error!')
Process Process-4:
Traceback (most recent call last):
File "/sybopt/software/python/python/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/sybopt/software/python/python/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "conn4.py", line 87, in extract_single
cursorconn.execute(qry2)
Error: ('HY000', 'The driver did not supply an error!')
Process Process-5:
Traceback (most recent call last):
File "/sybopt/software/python/python/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/sybopt/software/python/python/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "conn4.py", line 87, in extract_single
cursorconn.execute(qry2)
Error: ('HY000', 'The driver did not supply an error!')
为什么我收到此错误?
解决方案
推荐阅读
- c# - EF Core 2.2 - 使用 SelectMany 和 Include 时将查询发送到数据库
- python - 使用循环创建 Matplotlib 绘图
- enums - 在 Systemverilog 中访问枚举名称
- solr - 无法启动 solr 7.5
- java - spring boot,子实体,记录自动删除,不保存更新
- r - 如何在缺少数据的回归模型上使用 anova()?
- java - Java Swing App 为什么不以屏幕为中心?
- if-statement - 在多个单元格上减去值
- sql - SQL 更新 where select top(num)
- dynamics-crm - 是否可以使用“/api/data/”创建“customeraddress”实体记录
/' 接口?