“在对应所需名称或序数的集合中,未找到项目”问题的解决方法

简介:

在BCB或Delphi中,使用ADOQuery进行数据库的操作,经常会遇到“在对应所需名称或序数的集合中,未找到项目”的问题。这个问题是由于ADOQuery中使用了当前表中没有的字段造成的。

出错原因:

1.在ADOQuery中使用了Filter属性,并且设置Filter的值。在使用同一个ADOQuery进行另一个表的操作时,此Filter的值还是存在的,系统不会自动清除,于是出现了上面的问题。

解决方法:

1.对于需要用同一个ADOQuery解决不同的数据库表操作的时候,在对第二张表进行操作,执行ADOQuery->Open之前,执行ADOQuery->Filtered = false,这样上面的问题就可以解决了。



   在Delphi中,如果使用ADOQuery对数据进行修改保存,在修改保存了第一次以后,如果再次进行修改保存,就会遇到“无法为更新定位行,一些值可能已在最后一次读取后已更改”的问题。 

原因有这样几种:

1.在数据库设计时,为某些字段设置了默认值,在修改进行提交以后,数据库会自动修改对应字段的所有行的默认值,从而导致了数据库与数据集中数据的不一致,使ADOQuery无法对数据集进行定位。

2.数据库对应的表没有主键,输入了重复的数据以后,数据库里有两条一样的数据,从而使ADOQuery无法对数据进行定位。

解决方法:

1.修改数据库设计,不再设置默认值,为数据库表定义主键,保证其唯一性。

2.在执行完ADOQuery.Post之后,执行ADOQuery.Refresh,对于设置默认值的情况可以解决。
















本文转自鹅倌51CTO博客,原文链接:http://blog.51cto.com/kaixinbuliao/1536283 ,如需转载请自行联系原作者



相关文章
|
SQL 数据库
传递给数据库 'model' 中的日志扫描操作的日志扫描号无效
原文:传递给数据库 'model' 中的日志扫描操作的日志扫描号无效 状况描述:在服务器的管理中重新启动MSSQLSERVER启动后马上又停止   通过"事件查看器" 发现 错误: 9003,严重度: 20,状态: 1 LSN(5:324:1)无效。
3829 0
|
存储 算法
halcon模板匹配实践(1)算子参数说明与算子简介
halcon模板匹配实践(1)算子参数说明与算子简介
1366 0
|
网络协议
企业微信——给国外的邮箱发邮件报错Authentication results: DKIM = did not pass
企业微信——给国外的邮箱发邮件报错Authentication results: DKIM = did not pass
1545 2
|
10月前
|
供应链 监控 数据挖掘
电商API接口:开启供应链管理高效协同与价值提升新通道
电商API接口作为连接电商平台与供应链各环节的关键桥梁,通过实时库存管理、订单自动化、物流追踪、供应商协同等应用,显著提升供应链效率与协同能力,助力企业实现数字化转型与高效运营。
|
前端开发 JavaScript
使用 JavaScript 实现图片预览功能
使用 JavaScript 实现图片预览功能
508 0
|
安全 Windows
怎么关闭Windows安全中心?
Windows安全中心是Windows的防护组件,负责抵挡病毒和威胁。关闭它可能增加安全风险,但若必须,可遵循以下方法:通过设置->更新和安全->病毒和威胁防护管理设置关闭实时保护;使用组策略编辑器禁用“隐藏病毒和威胁防护区域”;或在注册表编辑器中创建DisableAntiSpyware DWORD并设值为1。关闭前务必安装其他安全软件并保持系统更新。
怎么关闭Windows安全中心?
|
JavaScript 前端开发 搜索推荐
【Vue 2】一个功能强大OA办公系统,开源且免费!!
【Vue 2】一个功能强大OA办公系统,开源且免费!!

热门文章

最新文章

下一篇
开通oss服务