假定条件都已记录下来,如何实现动态复合查询(多条件查询)?
FieldInfo = record
    FieldName: string;         //字段名称
    CompSign: string;          //比较符
    FilterValue: string;       //字段值
    MinValue: string;          //查询范围最小值
    MaxValue: string;          //查询范围最大值
    end;QueryRec: array[1..3] of FieldInfo;
如QueryRec[1],QueryRec[2]记录了两个查询条件,如何实现复合查询?

解决方案 »

  1.   

    QueryRec[1].FieldName+QueryRec[1].CompSign+''''+QueryRec[1].FilterValue+''' and '+
    QueryRec[2].FieldName+QueryRec[2].CompSign+''''+QueryRec[2].FilterValue+''''
      

  2.   

    根据QueryRec[i]生成用于where子句的字符串
    然后加到SQL语句后面去
      

  3.   

    ADOQuery1.Close;
    ADOQuery1.Prepared := False;
    ADOQuery1.SQL.Clear;
    sql := 'select 姓名,性别,民族 from BaseInfo where ';  
    sql1 := sql + QueryRec[1].FieldName+QueryRec[1].CompSign+''''+QueryRec[1].FilterValue+''' and '+QueryRec[2].FieldName+QueryRec[2].CompSign+''''+QueryRec[2].FilterValue+'''';
    ADOQuery1.SQL.Add(sql1);
    ADOQuery1.Prepared;
    ADOQuery1.Open;to haoco(程序员):这样好像不行啊,不认字段名
     
    to zleeway(杂草) :上述例子如何按你说的实现?具体一点
      

  4.   

    ok,解决了,谢谢大家的帮助,特别感谢haoco(程序员)和zleeway(杂草)