SQL 删除 ACCESS 数据错误

zmld 2015-08-03 11:02:45
Access 数据库,用SQL分析器:delete from OpenDataSource('Microsoft.Jet.OLEDB.4.0',
'Data Source="d:\mq.mdb";User ID=Admin;Password=')
...tmpRecords
where mqdate between '2015-07-01' and '2015-07-31'

错误:
OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 未能从表 'tmpRecords' 中删除。出现可恢复的、特定于提供程序的错误,如 RPC 失败。 Severity 16

如果把条件改为 mqdate =‘2015-07-01’,改为=号就没有错误??

...全文
74 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zmld 2015-08-03
太感谢了,用SQL2000没有报溢出。。。
回复
你可以参考一下这个文章: Acess错误:"文件共享锁定数溢出" http://blog.csdn.net/hank5658/article/details/3808208
回复
引用 3 楼 zmld 的回复:
如果数据少的话是不会出错的,数据多了才会出错,例如2015-07-01--2015-07-10,如果有1000条记录就不会错,如果有5000条以上就会出错,数字只是个大概数而已。


我经过反复试验,发现在一次删除9500条时,会报错:



然后,你可以在运行里打开 regedit,然后找到 MaxLocksPerFile 这个注册表项,然后修改里面的值为 更大的,比如10000
回复
zmld 2015-08-03
如果数据少的话是不会出错的,数据多了才会出错,例如2015-07-01--2015-07-10,如果有1000条记录就不会错,如果有5000条以上就会出错,数字只是个大概数而已。
回复

如果还不行,你试试设置一下这个吧,在sql server里面进行设置,把 这个Microsoft.Jet.OLEDB.4.0里面的勾都打上(因为我安装的是2013,所以是Microsoft.ACE.OLEDB.15.0):


回复

我安装了一个office 2013 64位版的,试了一下,可以实现:

delete from OpenDataSource('Microsoft.ACE.OLEDB.15.0',
'Data Source="d:\t.accdb";User ID=Admin;Password=')
...tt
where mqdate between '2015-07-01' and '2015-07-31'


回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2015-08-03 11:02
社区公告
暂无公告