//先兆出符合条件的
query1.sql.add('select * from table');
query1.sql.add('where 字段=条件');
//移动到最上
query1.first;
//修改即可

解决方案 »

  1.   

    我想还是用sql语句更好:
    query1.close;
    query1.sql.clear;
    query1.sql.add('select * from 表名 where 条件 ');
    query1.open;
      

  2.   

    with CustTable do
      Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P', '408-431-1000']), [loPartialKey]);然后用编辑命令就行了!
      

  3.   

    如果是这样查询后呢:
          ADOQuery1.SQL.Add('select count(*) from 用户');
          ADOQuery1.SQL.Add('where 日期='+#39+myDate+#39);
          ADOQuery1.Open;
          我想就在这里修改,请问怎么用locate??????
      

  4.   

    我做了个过程,是定位职工编号的,效果很号procedure TForm1.BitBtn2Click(Sender: TObject);//定位按钮
    begin
      qr1:=fmd.Query_fegz;
      bh1:=edit1.Text;
      gotobh(qr1,bh1);//调用过程
    end;procedure gotobh(qr:tquery;bh:string);//定位过程申明在public后
    var                          //全局变量
    qr1:tquery; //qr1是 职工编号定位用数据集
    bh1:string;   //bh1是 职工编号定位用procedure gotobh(qr:tquery;bh:string);     //bh1是 职工编号定位用
    begin
      with qr do
       begin
         DisableControls;
         first;
         while fieldbyname('zhigbh').asinteger<>strtoint(bh) do
         if not eof then  next
         else
           begin
             showmessage('没有你要查询的记录,请确认编号是否正确');
             break;
           end;
         EnableControls;
       end;
    end;
      

  5.   

    反正locate与find是有差别的,,看看帮助吧
      

  6.   

    最好用Sql语句
    record:integer;
    with query1 do 
     begin
       close;
       sql.clear;
       sql.add(' select table.* from tablename where ......');
       prepare;
       end;
     end;
    record:=query1.recordcount;
    if record<>0 then 
      begin
        query1.first;
        ......
      end;
      

  7.   

    1. 用table,简单实用
       Table1.IndexFieldNames:='aa;bb;cc';
       Table1.FindKey([12,'we',2345]);
       aa bb cc是字段名,[   ]中的是相应的符合条件的值
    2. Table1.setkey;
       Table1.FieldByName('aa').AsInteger:=12;
       Table1.GotoKey;
    3. Query1.locate('aa;bb;cc',varArrayOf([12,'we',2345]),[loPartialKey]);
    4. Query1.Sql.Add('select aa,bb,cc from myTable where aa=12 and bb='we' and cc=2345');这些够了吧?
      

  8.   

    Locate很好用的,为什么还要自己处理呢?
    查询Company='Sight Diver',Contact='P',Phone='408-431-1000'的记录,
    eg:
    dataset.Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P', '408-431-1000']), []);
    while not dataset.eof then
    begin
       ....
       dataset.next;
    end;