SOS

我在deliph中编写了以下code;但是与SQL查询结果不一样???
    MySQL:='xu_%';
    MySQL:='where 工作令号 like ''+MySQL+''';
    dm.contractQuery.SQL.Add('select * from tb_hetong ');
    dm.contractQuery.SQL.Add(MySQL);
    dm.contractQuery.ExecSQL;
    dm.contractQuery.Active:=true;
    dm.contractQuery.Open;

解决方案 »

  1.   

    有了最后 一句的OPEN就不要dm.contractQuery.ExecSQL;
        dm.contractQuery.Active:=true;了
      

  2.   

    dm.contractQuery.ExecSQL;是不会返回值的。查询用OPEN,execsql是在执行一些如update/delete/alter等等时用的,因为那个时候不需要返回结果。
      

  3.   

    MySQL:='xu_%';
        MySQL:='where 工作令号 like '''+MySQL+'''';//注意引号个数
        dm.contractQuery.Close;//要关闭
        dm.contractQuery.SQL.Clear;//要清除
        dm.contractQuery.SQL.Add('select * from tb_hetong ');
        dm.contractQuery.SQL.Add(MySQL);
       //这句话是多余 dm.contractQuery.ExecSQL;
       //这句话也多余 dm.contractQuery.Active:=true;
        dm.contractQuery.Open;