a:='where ';  
  SQL.Add('select * from xsxx');  
  s:='%'+trim(RzEdit1.Text)+'%';
  a:=a+trim(rzcombobox1.text)+' like ';
  sql.add(a);
  sql.add(':trim(rzcombobox1.text)');
  parameters.parambyname(trim(rzcombobox1.text)).value:=s;
老出错?怎么修改?

解决方案 »

  1.   

    'where ' 前要有加空格另外,你的字符中相加,可以再简明一些,省去s这个临时变量,下面这样写:a:='select * from xsxx where '+trim(rzcombobox1.text)+' like '+'%'+trim(RzEdit1.Text)+'%';
    SQL.Add(a);
      

  2.   

    用这种方法不直观,容易出错,参考以下写法:
    strSql: String;strSql:=Format('select * from xsxx where %s like ''%s''',['%'+trim(RzEdit1.Text)+'%'];
    sql.Add(strSql)
      

  3.   

    SQL.Add('select * from xsxx');
    a:='where ';
    a:=a+trim(rzcombobox1.text)+' like '+''''+'%'+RzEdit2.Text+'%'+'''';
    SQL.Add(a);
    我查询出来怎么把表中全部数据都显示出来了?