在用ADO更新数据库时有时出现 Microsoft JET Database Engine 错误 '80004005'
所有记录中均未找到搜索关键字,可使用以下几种方法来解决所有记录中均未找到搜索关键字的几种解决方法
一。今天在一个更新句子时出现一个错误:"所有记录中均未找到搜索关键字" 去网上查了查,说数据库损坏,然后就把本地的传上去一份,然后修改一次成功了,可是在修改一次又不行了!找了好几个答案都说是数据库损坏
。搜了半天后在在一个博客上发现一个高人说貌似是Access的一个BUG(高人才敢这么说Microsoft的产品),并且附上了解决方法,删除了“索引”问题就解决了,果然是高人。下面是解决方法: 使用Access数据库,出现“所有记录中均未找到搜索关键字”的错误。不知怎样解决。猜测是Access数据库的一个BUG。
测试故障过程如下:
使用access数据新建一个表,只要这个表里有一个字段是备注型。就算这个表里只有唯一个字段,只要是备注型字段。那么只要你有如下操作,必然的错误: 1、随便找一块文字:只要总的字节数超过2K以上。编写程序方式或甚至只是在access数据库程序直接贴上这块方字后。
2、第一次保存肯定正常。即第一次添加、保存都是正常的。
3、问题出现在:第二次修改时,随便在这个备注型字段中插入几个字。保存时就会提示“所有记录中均未找到搜索关键字”。同时这个数据库就这样坏掉了。
4、第3点步聚如果是在网页中用程序来提交也是存在相同问题。
5、接着就会出现各种故障了:正常的网站会因数据库坏掉不能正常运行。或者是提示“所有记录中均未找到搜索关键字”出错。 解决的方法:只能用数据库的修复和压缩功能来修复这个数据库。 但是这种方法不是根治这个故障的主要方法。只要你第二次还有提交一个大块数据给这个备注型字段,这个故障又出来啦!! 虽然我没有用SQL数据库测试过,我想信在SQL里应是没有这个问题。这个是不是Access一个天生不足的表现??? 备注型字段为什么不能超过1950字节。是由于备注型字段是有“索引”。用Access对数据库的表进行设计时,点试设计视图->索引, 可以看到这个字段有索引。就是这个原因,删掉这个索引就什么事都没有了。 奇怪的是:在ACCESS设计表时,在备注型的字段里,根本就没有选项对备注型字段加上索引功能,为什么会偷偷地跑出一个索引出来?也许这个确实是ACCESS的一个BUG。
二。asp写了那么长时间都没有发现,今天居然让我碰到了。 网页页面是一个标题和信息内容(备注型)的修改提交,第一次提交修改没有问题,第二次提交修改就出现错误
Microsoft JET Database Engine 错误 '80004005' 所有记录中均未找到搜索关键字。 开始一直调试是不是数据错误,Access的“压缩和修复数据库”也点了很多次,等第二次提交修改都出现问题,后来使用信息内容换成少量字符(随便几个字符),提交了N次都正常,开始还怀疑我的Access数据库是不是出问题了,怪了。百度搜索一下错误代码,发现还蛮多这样的文章,哈,找到原因了。 如果access的备注字段存在索引,当字段的内容超过1908个字节后,该记录将不可删除,就会出现上面的问题。原来是数据库的信息内容字段(即备注字段)不知道什么时候加了“索引”。把索引改成“无”就都好了。
现在很郁闷的是建立一个备注型的字段,它默认索引就是“无”的,不知道我什么时候操作修改过表的索引类型还是Access本身的BUG。 不过总结下知道了这样的错误的解决方式就可以了,下次编程开发中就又多了一份经验了。
三。所有记录中均未找到搜索关键字。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 所有记录中均未找到搜索关键字。 源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
解决方法:系统维护中清除缓存.
四。使用Access,遇到“所有记录中均未找到搜索关键字” 服务器遇到断电,重新启动后,访问Access,遇到错误
“所有记录中均未找到搜索关键字”
然后提示那个页面的哪个逻辑出现问题,查询逻辑,没有变化,察看数据,都正常。
使用Google搜索了一下,
原来
是Access 文件损坏。
解决办法:
出现此错误是因为Access数据库有错误了[数据库损坏],
使用 Ms Access 压缩修复压缩修复在Access 工具->数据加实用工具->压缩和修复数据库
即可修复完毕~
还好可以修复,否则,需要重新建立数据文件,数据虽然没有丢失,但是时间是要花费的了。
|