社区
数据库及相关技术
帖子详情
如何从ADOQuery的数据集中快速找到指定的值
zhgwbzhd
2011-05-15 07:18:28
我使用ADOQuery控件,进行了数据检索。
ADOQuery->Open();
现在我想直接得到某列的值。
比如,name列里有一行的值是“张三”,那么我想得到这行的其他的值。
好像Local可以定位。
但是使用了之后都报错。
如果用循环的话,我觉得效率比较低。
麻烦各位指点一下。
...全文
287
6
打赏
收藏
如何从ADOQuery的数据集中快速找到指定的值
我使用ADOQuery控件,进行了数据检索。 ADOQuery->Open(); 现在我想直接得到某列的值。 比如,name列里有一行的值是“张三”,那么我想得到这行的其他的值。 好像Local可以定位。 但是使用了之后都报错。 如果用循环的话,我觉得效率比较低。 麻烦各位指点一下。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
CsharpGame
2011-05-17
打赏
举报
回复
先用local定位到这条记录,再用filedByname("字段名")获取或更改字段的值!
我不懂电脑
2011-05-16
打赏
举报
回复
你可以使用 ADOQuery.Locate('字段名','值',[参数{可以为空}])进行查找,如果查找成功,则返回true,否则返回false;
注意事项:因为用Adoquery.Locate()查找记录会改变记录的指针,即:adoquery.Recno,如果你使用的是TDbEdit之类的控件刚才与AdoQuery绑定在一起时,TDbEdit会在查询的时候发生变化.你可以换成普通的TEdit控件,这样一来,查询的时候值就不会因指针变化与改变,在保存数据的时候,再想办法将TEdit中的值写入表中即可,
或者:也可以使用两个表,一个用于数据录入,另一个副本表用于查询
Recno := DataSet.RecNo; //记下进入时的记录号
if DataSet.Locate('fieldName',value,[]) then //查找
begin
......//此处为你找到记录后的处理程序
end;
DataSet.RecNo := Recno; //还原记录指针到查询前的位置
jamesyue2008
2011-05-16
打赏
举报
回复
用查询。
select * where name='张三'
然后可以取各字段的值了。
cmf41013
2011-05-16
打赏
举报
回复
Local抱什么错?
zhgwbzhd
2011-05-16
打赏
举报
回复
[Quote=引用 2 楼 jamesyue2008 的回复:]
用查询。
select * where name='张三'
然后可以取各字段的值了。
[/Quote]
就是因为数据量可能会比较大,所以使用这样的方法,可能会长时间占用SQL的资源。
所以就一次检索出 几W条,进行内存内查询对比。
zhgwbzhd
2011-05-16
打赏
举报
回复
[Quote=引用 3 楼 songhtao 的回复:]
你可以使用 ADOQuery.Locate('字段名','值',[参数{可以为空}])进行查找,如果查找成功,则返回true,否则返回false;
注意事项:因为用Adoquery.Locate()查找记录会改变记录的指针,即:adoquery.Recno,如果你使用的是TDbEdit之类的控件刚才与AdoQuery绑定在一起时,TDbEdit会在查询的时候发生变化.你可以换成普通的TEdi……
[/Quote]
哥们,你的这个语法是??
bcb内用“[]”是不对的。
什么是
数据集
(
ADO
Query
)
6.7.2 插入新的记录 要在
数据集
中
插入新的记录,首先要进入dsInsert状态。要进入dsInsert状态,可以调用Insert或Append函数。不过,调用Insert或Append不一定会使
数据集
进入dsInsert状态,还取决于CanModify属性的
值
。 一旦进入了dsInsert状态,用户就可以在数据控件(一般是TDBGrid)
中
插入一条新的记录,并给这条记录输入数据。 如果要...
一、
ADO
DataSet、
ADO
Table、
ADO
Query
的属性
一、
ADO
DataSet、
ADO
Table、
ADO
Query
的属性 属 性 说 明
ADO
:使用记录集对象Recordset 查询数据库
中
的数据
在
ADO
程序开发
中
,记录集对象 Recordset 对象代表一个表的记录集合或者是一个SQL命令或是存储过程的执行结果。简单的说,记录集实际上缓存了从数据库获得的记录,应用程序可以从记录集
中
获得每条记录的字段。①、记录集对象 Recordset 的属性:⑴ RecordCount 属性:返回记录集
中
记录的个数;⑵ BOF、EOF 属性:BOF 指示当前记录位置位于记录集对象的第一个记录之前;E...
Delphi locate函数
使用
ADO
等数据控件的时候,经常会用到 locate 函数,在结果
数据集
中
查询和定位,下面介绍一下: (一) function Locate(const KeyFields: String; const KeyValues: Variant; Options: TLocateOptions): Boolean; Locate 方法的3个参数: 1、KeyFields 字段名称...
无法为更新定位行,一些
值
可能已在最后一次读取后已更改
ADO
Table,ACCESS数据库,表某个字段A-数字类型,默认
值
是0. 添加一条记录后, 无法为更新定位行,一些
值
可能已在最后一次读取(2009-03-11 11:58:22)标签:it 报错:无法为更新定位行,一些
值
可能已在最后一次读取后已更改 在Delphi 7
中
,用
ADO
Query
或
ADO
DataSet操作数据库很方便,可查询,可增删改。 但如果对数据进行修改保存,然后再次对其进行修改保存,就会遇到“无法为更新定位行,一些
值
可能已在最后一次读取后已更改”的问题。 原因有这样几种: .
数据库及相关技术
1,178
社区成员
18,939
社区内容
发帖
与我相关
我的任务
数据库及相关技术
C++ Builder 数据库及相关技术
复制链接
扫一扫
分享
社区描述
C++ Builder 数据库及相关技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章