我有一个 VBA 代码,我在其中调用 oracle 使用 ODBC 检索数据两次。
第一次数据检索没问题。但第二次却说,
**RunTime Error '-2147467259 (80004005)'; Unspecified error**
我的代码如下,
注意:相同的代码适用于连接 Teradata,但在我使用时失败
甲骨文
'First Data retrieval
Query1 = "Select TableName from all_tables"
CmdSQLData.CommandText = Query1
CmdSQLData.CommandType = adcmdText
CmdSQLData.Timeout=0
set rs = CmdSQLData.Execute()
'Then code to store data ...
'This part gives proper result ...
rs.close()
'Second Data retrieval
Query2 = "Select * from db.Event"
CmdSQLData.CommandText = Query2
CmdSQLData.CommandType = adcmdText
CmdSQLData.Timeout=0
set rs = CmdSQLData.Execute() 'This line Gives Error - RunTime Error '-2147467259 (80004005)'; Unspecified error
我还尝试创建新的命令对象作为 cmdSQLData1 但仍然相同
错误
我可以知道为什么第二个查询会出现错误吗?
我在oracle目录下测试过,查询没有问题。
请告诉我
你不会在任何地方看到这个记录,但是重用Command
具有不同 comamndText 的对象实际上是一种不好的做法。您没有说明您正在使用哪种连接,但例如,如果它是 ODBC,这将在内部向 Oracle 发送虚假的无效 SQL,以强制进行某种清理。所以,相反,扔掉你的Command
使用后对象并创建一个新对象。
Reusing Command
对象是一个good当您使用不同的参数值重新执行相同的查询时进行练习,但这里的情况并非如此。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)