问题描述
我们正在从WinXP 32位升级到Win7 64位,突然一些dBase查询导致D:\ Office \ Source \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ MS Visual C ++运行时库。
We are upgrading from WinXP 32bit to Win7 64bit and suddently some dBase queries results in an assertion failed in D:\Office\Source\ace\common\src\SafeOps.cpp reported by MS Visual C++ Runtime Library.
这是一个几乎干净的Win7盒子,我运行Microsoft更新以获取所有更新。我不得不安装"Microsoft Access数据库引擎2010可再发行组件"。以及将64位数据库驱动程序设置为dBase的相关SP1。
It is an almost clean Win7 box and I ran Microsoft update to get all updates. I had to install "Microsoft Access Database Engine 2010 Redistributable" and the related SP1 to get the 64bit database drivers to dBase.
我已将代码隔离为简单的select语句"select * from SomeTable"。它在WinXP(32位)中运行良好,但对于大约100,000个记录的大型表,它在Win7(64位)中失败。我能够在vbscript中重新创建事件
I have isolated the code to be a simple select statement "select * from SomeTable". It works fine in WinXP (32bit) but for large tables with say ~100,000 records it fails in Win7 (64bit). I was able to recreate the incident in a vbscript
Set con = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
con.Open "DSN=test;"
' ok (approx. 100 rows)
rs.Open "select ID from PATIENT", con
rs.Close
' fails! (approx 8000 rows)
rs.Open "select ID from FIELD", con
rs.Close
con.Close
附加图像上显示的名为test的ODBC数据属性
The ODBC data soruce named test displayed on the attached image
它是Win7中64位dBase驱动程序的可配置限制还是将要发生的事情on?
Is it an configurable limitation on the 64 bit dBase drivers in Win7 or what is going on?
推荐答案
这篇关于ADO与dBase的连接中的查询失败(SafeOps.cpp中的断言失败C ++运行时)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!