怎么从ADOQuery的数据集中快速找到指定的值

如何从ADOQuery的数据集中快速找到指定的值
我使用ADOQuery控件,进行了数据检索。

ADOQuery->Open();

现在我想直接得到某列的值。

比如,name列里有一行的值是“张三”,那么我想得到这行的其他的值。

好像Local可以定位。
但是使用了之后都报错。

如果用循环的话,我觉得效率比较低。

麻烦各位指点一下。



------解决方案--------------------
Local抱什么错?
------解决方案--------------------
用查询。
select * where name='张三'
然后可以取各字段的值了。
------解决方案--------------------
你可以使用 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; //还原记录指针到查询前的位置

------解决方案--------------------
先用local定位到这条记录,再用filedByname("字段名")获取或更改字段的值!