很奇怪啊..SQL.Clear就可以,Add也可以,就是那个不行?
我把Add的那个SQL语句换成字符串也不行..有那位高人知道这是什么原因?晕....
procedure ExeFindSQL(SortName: String);
begin
    try
        with DataM.Q1 do
        begin
            SQL.Clear;
            sql.Add(sqlStr+' Order By '+SortName);
            SQL.open;
        end;
    except
        ShowMessage('查询表达式不正确,请清除后重来.');
        raise;
    end;
End;

解决方案 »

  1.   

    直接Open就可以:
        try
            with DataM.Q1 do
            begin
                Close;
                SQL.Clear;
                sql.Add(sqlStr+' Order By '+SortName);
                open;
            end;
        except
            MessageBox(handle,'查询表达式不正确,请清除后重来.','出错',MB_ICONERROR);
        end;
      

  2.   

    晕什么嘞
    SQL.Open未定义,因为SQL没有定义Open方法,说的不够清楚么?
    SQL是个Strings,存的只是sql语句,一堆字符串而已,你让它怎么open呢
      

  3.   

    回楼上,我是一时忘了...自己天天写的代码,竞然会看错...呵呵...这一段是COPY过来的..
      

  4.   

    呵呵,常有的
    我还经常while读取数据时候忘了next,调试就死循环。
      

  5.   

    呵呵。
    与楼上同感。。
    有时用同一个ADOQuery,一边用查询,一边用修改,真是晕死。
    LZ的sqlStr好像是空的怎么样也OPEN不了的。只是ORDER后面的语句