如何从ADOQuery的数据集中快速找到指定的值

校若南N2
2013-10-13 · TA获得超过4159个赞
知道大有可为答主
回答量:1067
采纳率:83%
帮助的人:861万
展开全部
ADOQuery->Open(); 现在我想直接得到某列的值。 begin比如,name列里有一行的值是“张三”,那么我想得到这行的其他的值。 但是使用了之后都报错。 select * where name='张三' 如果用循环的话,我觉得效率比较低。 麻烦各位指点一下。 然后可以取各字段的值了。 你可以使用 ADOQuery.Locate('字段名','值',[参数{可以为空}])进行查找,如果查找成功,则返回true,否则返回false; 或者:也可以使用两个表,一个用于数据录入,另一个副本表用于查询 Recno := DataSet.RecNo; //记下进入时的记录号 if DataSet.Locate('fieldName',value,[]) then //查找 ......//此处为你找到记录后的处理程序end;DataSet.RecNo := Recno; //还原记录指针到查询前的位置 好像Local可以定位。 注意事项:因为用Adoquery.Locate()查找记录会改变记录的指针,即:adoquery.Recno,如果你使用的是TDbEdit之类的控件刚才与AdoQuery绑定在一起时,TDbEdit会在查询的时候发生变化.你可以换成普通的TEdit控件,这样一来,查询的时候值就不会因指针变化与改变,在保存数据的时候,再想办法将TEdit中的值写入表中即可, bcb内用“[]”是不对的。 就是因为数据量可能会比较大,所以使用这样的方法,可能会长时间占用SQL的资源。 所以就一次检索出 几W条,进行内存内查询对比。
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
雪V歌
2018-06-28 · 知道合伙人数码行家
雪V歌
知道合伙人数码行家
采纳数:78698 获赞数:222937
泉州兴瑞发公司2015-2017最佳优秀员工。

向TA提问 私信TA
展开全部
ADOQuery->Open();
现在我想直接得到某列的值。
begin比如,name列里有一行的值是“张三”,那么我想得到这行的其他的值。
但是使用了之后都报错。
select * where name='张三'
如果用循环的话,我觉得效率比较低。
麻烦各位指点一下。
然后可以取各字段的值了。
你可以使用 ADOQuery.Locate('字段名','值',[参数{可以为空}])进行查找,如果查找成功,则返回true,否则返回false;
或者:也可以使用两个表,一个用于数据录入,另一个副本表用于查询
Recno := DataSet.RecNo; //记下进入时的记录号
if DataSet.Locate('fieldName',value,[]) then //查找
......//此处为你找到记录后的处理程序end;DataSet.RecNo := Recno; //还原记录指针到查询前的位置
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式