excel - 为什么几分钟后正常运行的 ODBC 连接会失败(Excel VBA / Oracle)?
问题描述
我将非常感谢有关此问题的任何反馈。
我们目前正在将我们的 VBA 工具迁移到 Windows 10 / Excel 2016。在我们的工具中,我们经常连接到 Oracle DB,获取数据并在 Excel 中处理它。
在Win10下,我选择了以下设置:
- ODBC 数据源:添加 Oraclein OraHome112_54,连接测试有效
- Excel:参考“Microsoft Office 16.0 Access db...”和“Microsoft ActiveX Data Objects 6.1”
- Excel:变量,我将“oCon as ADODB.Connection”和“oRs as ADODB.Recordset”声明为“CreateObject(“ADODB.Connection”) 和“Recordset”
- 连接字符串:“DSN=DbName;用户=12345;密码=xyz”
现在的问题:在新的 Excel 实例中启动工作簿时,我可以多次运行相关查询。然后在几分钟后(比如 5-10 分钟),代码在尝试连接到数据库时遇到错误“运行时错误'-2147418113 (8000ffff)':灾难性故障”(在运行 SQL 查询之前) .
我已经尝试将连接字符串更改为“数据源=”而不是“DSN=”-同样的事情。
这个怎么可能?首先它工作,然后它停止。关闭 Excel 并打开一个新 Excel 后,它会再次运行几分钟。
非常感谢您对此的帮助。
编辑:我现在将连接字符串重新表述为“更现代”的风格,但它不能解决问题。Driver={Oracle in OraHome112_64};dbq=something.net:1522/something_else.net;UID=user123;PWD=pw123;
EDIT2:连接字符串的另一个变体,同样的问题:strConn = "Provider=oraLEDB.Oracle.1;User ID=User123;Password=PW123;Data Source=something.net:1522/something_else.net"
解决方案
重新启动 Excel 并使用 EDIT2 下的字符串后,结果不再出现错误。使用这个字符串已经稳定运行了几个小时。
希望这对将来的某人有所帮助,我花了大约 10 个小时才弄清楚。
推荐阅读
- python - 计算 python 脚本/模块和所有递归导入的校验和,包括标准库
- python - Django Rest Framework 嵌套关系集字段 'read_only=True'
- sql-server - SQL Server 如何在这种困难的情况下利用 Pivot
- django - Django - 使用 ORM 的嵌套关系查询
- vba - 试图让 VBA 从 Zillow 中提取数据
- dotnet-cli - dotnet pack "元素
无法识别” - django - Django [ TypeError: __init__() got an unexpected keyword argument 'choice' ] 在我的模型中添加选择时发生
- c++ - Qt Visual Studio 插件是否支持基于 Qbs 的项目?
- python-3.x - 错误:IndexError:列表索引超出范围
- java - 如何根据 ListView 中的字符串值设置TextColor?