Python pyodbc在连接数据库时会交替引发异常

Python pyodbc在连接数据库时会交替引发异常,python,pandas,teradata,pyodbc,vertica,Python,Pandas,Teradata,Pyodbc,Vertica,我曾尝试使用pyodbc作为Vertica和Teradata数据库的登录驱动程序创建一个跨数据库验证脚本。如果我对一个数据库登录(即Vertica或Teradata)运行查询,则一切正常。当我在Vertica和Teradata中运行脚本时,问题就开始了。每隔一段时间,驾驶员就会抛出以下错误 以下是Teradata的连接字符串: def create_connection_redwood(): conn = pyodbc.connect("DRIVER=Teradata;DBCNAME=m

我曾尝试使用pyodbc作为Vertica和Teradata数据库的登录驱动程序创建一个跨数据库验证脚本。如果我对一个数据库登录(即Vertica或Teradata)运行查询,则一切正常。当我在Vertica和Teradata中运行脚本时,问题就开始了。每隔一段时间,驾驶员就会抛出以下错误

以下是Teradata的连接字符串:

def create_connection_redwood():
    conn = pyodbc.connect("DRIVER=Teradata;DBCNAME=mydatabase;UID=username;PWD=passphrase;QUIETMODE=YES", autocommit=True,unicode_results=True)
    return conn
我使用下面的连接,从源和目标两个文件读取查询

def dqm_newark() :
    conn_nwk = create_connection_nwk()
    dataframes_newark = []
    tgtfile = open('tgtqueries.sql', 'rU').read()
    querylist = tgtfile.split(';')
    querylist.pop()
    for query in querylist :
        dataframes_newark.append(pd.read_sql(query, conn_nwk))
    close_connection(conn_nwk)
    return dataframes_newark,querylist


def dqm_redwood() :
    conn_rw = create_connection_redwood()
    dataframes_redwood = []
    srcfile = open('srcqueries.sql', 'rU').read()
    querylist = srcfile.split(';')
    querylist.pop()
    for query in querylist :
        dataframes_redwood.append(pd.read_sql(query, conn_rw))
    close_connection(conn_rw)
    return dataframes_redwood,querylist
我使用熊猫数据框匹配结果集:

assert_frame_equal(src_dataframes[i], tgt_dataframes[i],check_names=False)
以下是回溯:

Traceback (most recent call last): File "DQM.py", line 158, in <module> compare_data() File "DQM.py", line 94, in compare_data 
src_dataframes,querylist_redwood = dqm_redwood() File "DQM.py", line 31, in 
dqm_redwood conn_rw = create_connection_redwood() File "DQM.py", line 125, in 
create_connection_redwood conn = pyodbc.connect("DRIVER=Teradata;DBCNAME=databasename;UID=username;PWD=passwrod;Q‌​UIETMODE=YES", autocommit=True,unicode_results=True) 
Error: ('HY000', 'The driver did not supply an error!')

我无法每隔一段时间找出问题的原因。我是否遗漏了任何内容?

您是否在程序中使用线程?另外,odbcinst.ini文件中的线程值设置为多少?不,我不知道线程。我没有使用它。你能检查一下odbcinst.ini文件,看看线程设置是什么或者根本没有吗?还有你安装的pyodbc的版本是什么?@woot:在你第一次发表评论后,我在odbcinst.ini文件和etc文件夹下的odbcinst.ini文件中添加了threading=1。但没有发生任何变化。版本为pyodbc-3.0.10。
assert_frame_equal(src_dataframes[i], tgt_dataframes[i],check_names=False)
Traceback (most recent call last): File "DQM.py", line 158, in <module> compare_data() File "DQM.py", line 94, in compare_data 
src_dataframes,querylist_redwood = dqm_redwood() File "DQM.py", line 31, in 
dqm_redwood conn_rw = create_connection_redwood() File "DQM.py", line 125, in 
create_connection_redwood conn = pyodbc.connect("DRIVER=Teradata;DBCNAME=databasename;UID=username;PWD=passwrod;Q‌​UIETMODE=YES", autocommit=True,unicode_results=True) 
Error: ('HY000', 'The driver did not supply an error!')