else
begin
ADOQUERY1.SQL.Add('SELECT path from music where path Like '+'*'+ComboBox1.Text+'*'+' and suffix='+'''.mp3''');
 ADOQuery1.Open;
   while  not(ADOQuery1.Eof) do
beginShowmessage(ADOQUERY1.FieldByName('path').AsString);
 ADOQuery1.Next;end;
end;编译的时候没错,但执行的时候说FROM子语句出现错误

解决方案 »

  1.   

    var
      cmb:string;
    begin
    cmb:='*'+ComboBox1.Text+'*';
    adoquery1.close;
    adoquery1.sql.clear;
    ADOQUERY1.SQL.Add('SELECT path from music where path Like '''+cmb+''' and suffix ='+'.mp3'); 

    ADOQuery1.Open; 
      while  not(ADOQuery1.Eof) do 
    begin Showmessage(ADOQUERY1.FieldByName('path').AsString); 
    ADOQuery1.Next; end; 
    end; 
      

  2.   

    ADOQUERY1.SQL.Add('SELECT path from music where path Like '''+'*'+ComboBox1.Text+'*'+''' and suffix='+'''.mp3'''); 
      

  3.   

    ADOQUERY1.SQL.Add('SELECT path from music where path Like '''+cmb+''' and suffix ='+'''.mp3'''); 
      

  4.   

    'SELECT path from music where path Like '+'*'+ComboBox1.Text+'*'+' and suffix='+'''.mp3'''
    你這個語句有問題,不明白的話你把它先showmessage出來
      

  5.   

    to 5l
    我知道这句有问题,还请大哥解释下,要不我还是只知其然,不知其所以然
      

  6.   

    to 1
    语法错误(操作符丢失)在查询表达式‘path like " and suffix =.mp3中
    数据库是ACCESS
      

  7.   

      ADOQUERY1.SQL.Add('SELECT path from music where path Like '+'''*'+ComboBox1.Text+'*'''+' and suffix='+'''.mp3''');
      showmessage(adoquery1.SQL.Text);
      ADOQuery1.Open;
      while  not(ADOQuery1.Eof) do
      begin
        Showmessage(ADOQUERY1.FieldByName('path').AsString);
        ADOQuery1.Next;
      end;
    但没有明白你为什么like时用*是什么意思呢,是不是应该项改成'%'来实现模糊查询呢
      

  8.   

    模糊查询部分要加单引号 like ''%' + str + '%''';
      

  9.   

    var 
      cmb:string; 
    begin 
    cmb:='*'+ComboBox1.Text+'*'; 
    adoquery1.close; 
    adoquery1.sql.clear; 
    ADOQUERY1.SQL.Add('SELECT path from music where path Like '''+cmb+''' and suffix ='+'''.mp3'''); //这里少了单引号~~已加上~~再试一下~~
    ADOQuery1.Open; 
      while  not(ADOQuery1.Eof) do 
    begin Showmessage(ADOQUERY1.FieldByName('path').AsString); 
    ADOQuery1.Next; end; 
    end;
      

  10.   

    to 8在ACCESS中,模糊查询是用*而不是%..我换成%试下
      

  11.   

    cmb:='%'+ComboBox1.Text+'%';
    adoquery1.close;
    adoquery1.sql.clear;
    //ADOQUERY1.SQL.Add('SELECT path from music where path Like '''+cmb+''' and suffix ='+'.mp3');
     //ADOQUERY1.SQL.Add('SELECT path from music where '''+'suffix ='''+'''.mp3''');
       ADOQUERY1.SQL.Add('SELECT path from music where path Like '''+cmb);
     ADOQuery1.Open;ADOQUERY1.SQL.Add('SELECT path from music where '''+'suffix ='''+'''.mp3''');执行成功,但ADOQUERY1.SQL.Add('SELECT path from music where path Like '''+cmb);就不行了,,*换成%也一样
      

  12.   

    ADOQUERY1.SQL.Add('SELECT path from music where path Like '''+cmb+''' and suffix ='+'''.mp3''');是可以的~~
      

  13.   

    to 14 
    这句是可以,但想不通ADOQUERY1.SQL.Add('SELECT path from music where path Like '''+cmb+'');  为什么不可以cmb+'' 这个后面我想应该是3个‘号,但不能通过语法检查,2个就出错
      

  14.   

    呵呵,谢谢DE410,怪不得我用quotedstr就可以,用‘’就不行了。结贴