用个SQL语句就可以了。假如你的字段名为姓名:name,sqlString:='select * from yourtable where name like "周%"';定义或者放置一个TQuery,
TQuery.Sql.add(SQlString);
TQuery.open;
这样,TQuery返回一个和你平时操作一样的Dataset,而里面的记录是以姓名第一个字为周来查询的。
如果你需要动态参数查询,可以动态地构造一个SQLString就可以了。

解决方案 »

  1.   

    我不要用SQL!!!的,对不起。
      

  2.   

    Query1.Close;
    Query1.SQL.Clear;
    Query1.SQL.Add('Select * from Custom where Name like '''+Edit1.Text+'%''');
    Query1.Open;
      

  3.   

    if pos('周',Fieldvalue) > 0 then
      accept := true;
      

  4.   

    奇怪!我按照下面操作,还是不行.
    var 
    fieldval:string; 
    begin 
    fieldval:=dataset['姓名']; //姓名为属性
    accept:=fieldval[1]='周%'; //找姓周的人
    end;
    什么原因?? 
    还有,我用Query的SQLstring里的为
    select * from mytable where 成绩 like '7%' //想找70多分的
    也不行.为什么?
      

  5.   

    直接:
    ADOTable.Filter := 'NAME LIKE '周%'';
    ADOTable.Filtered := true;
      

  6.   

    我的属性是'姓名',中文的.不是英文.
    ADOTable.Filter := 'NAME LIKE '周%''; 
    ADOTable.Filtered := true;
    //里面的NAME 应该不是 姓名 吗?
    我是初学的,不要见怪.
      

  7.   

    Delit(Delit):
      Locate()怎么用在我的问题中啊??
      

  8.   

    with Table1 do
      begin
       IndexFieldNames:='Name';
       FindNearest([Edit1.Text]);     //模糊查找
      end;
      

  9.   

    blackfish:
    你给的好像要必须是index字段才行,但据我所知,table只能多建一个第二index,所以如果我的'姓名'不是index字段的话,你给的就不行了吧,反正我是不会。
      

  10.   

    With Query1 Do
      begin
        Close;
        SQL.Clear;
        SQL.Add('Select * from Custom where Name like '''+Trim(Edit1.Text)+'%''');
        Open;
      end;
    这样还有问题吗?
      

  11.   

    select * from 表名 where [姓名] Like '周%'
    试试吧
      

  12.   

    'Select * from Custom where 成绩 like '+Trim(Edit1.Text)+'%'