我想在已有数据集的TClientDataSet中取出所有F_ID中包括"玉"的记录,用上面的语句为何不行,但我用'F_ID like ' + QuotedStr('玉%');就能取出"玉"开头的记录,怎么取出包括"玉"的记录的记录啊,谢谢!

解决方案 »

  1.   

    用'F_ID like ' + QuotedStr('%玉%');
      

  2.   

    用'F_ID like %'+quotedstr('玉%')试一下
      

  3.   

    to frogshero(三波萝) :这样出不来任何记录的
    to lianshaohua(永远深爱一个叫“然”的好女孩儿!) :这样出现“Invalid filter expression character:'%'”错误
      

  4.   

    'F_ID like ' + QuotedStr('%玉%');如果把"玉"改成英文,如"m",它会出现所有包含"m"的记录,中文却不行,怎么办啊?谢谢大家!
      

  5.   

    Edit1.Text := '玉';
    ClientDataSet1.Filter := 'name LIKE ''%' + Edit1.Text + '%'' ';
    ClientDataSet1.Filtered := true;
      

  6.   

    这个问题我遇到过,好像是CLIENTDATASET的FILTER对中文的支持问题,写法是肯定没问题的。至于怎么解决,:(
      

  7.   

    ClientDataSet.Filter := 'F_ID like ' + #39 + '%玉%' + #39;
      

  8.   

    'F_ID like ' + ''''+ '%玉%' + '''';
      

  9.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ClientDataSet1.FileName := 'C:\Program Files\Borland\Delphi7\Demos\DbClx\mybasexplorer\animals.xml';  //是DEMO
      ClientDataSet1.Active := true;
      DataSource1.DataSet := ClientDataSet1;
      DBGrid1.DataSource := DataSource1;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      Edit1.Text := 'a';
      ClientDataSet1.Filter := 'name LIKE ''%' + Edit1.Text + '%'' ';
      ClientDataSet1.Filtered := true;
    end;(注:按「Button1」打開DEMO、按「Button2」含"a")
      

  10.   

    hehe, 我這里不是中文系統、除了英語、数字等単字節、双字節的東東好象也不行...(~_~)
      

  11.   

    这个问题我刚遇到,可以帮你.你如果想在FILETER中用Like '%'是不行的,这个只能用在SQL语句中,在FILETER中应该这样'F_ID = ' + QuotedStr('玉*');就行了,给分吧.呵呵
      

  12.   

    楼上说的对,FILETER是过滤用的,'%'只有在SQL语句才有用.
      

  13.   

    filter 中like 不能用% ;
    好像是用*
    就是說要用'F_ID like ' + QuotedStr('*玉*');
      

  14.   

    我知道怎么解决,你的数据库是access把?