我使用Excel 2007 VBA中的ADODB使用Teradata ODBC 15.0驱动程序连接到Teradata 14.0服务器。除了通过ADODB.Recordset.Open
提交非常大的查询时,一切都按预期工作。
偶尔,当我使用5000多个字符的查询尝试recordset.open
时,会抛出ODBC Driver does not support the requested properties
错误-2147217887
。
当我没有获得加载的记录集对象时,错误会出现在设定的时间(30秒左右)之后。
代码很简单:
Sub getData()
Dim strSQL As String
Dim scRS As ADODB.Recordset
Dim adoConn As ADODB.Connection
strSQL = "Very Large SQL"
'open the connection
Set adoConn = New ADODB.Connection
On Error GoTo adoExit
adoConn.Open "SessionMode=Teradata;Driver=Teradata;DBCName=<SERVERIP>;Database=<DATABASE>;CharSet=UTF16;Uid=<USERID>;Pwd=<PASSWORD>"
'get the data
Set scRS = New ADODB.Recordset
scRS.Open strSQL, adoConn, adOpenKeyset, adLockOptimistic
...
End Sub
编辑添加:我尝试使用{{3}在连接字符串中尝试几乎所有可能影响数据包大小/超时/字符集(我认为可能影响总字节数)/等的变体作为指导。而且我仍然会有零星的超时。
答案 0 :(得分:0)
尝试运行复合查询时遇到同样的问题。
尝试在连接字符串末尾添加:;QueryTimeout=0
(adoConn.Open
后面的那个)