动态查询问题combobox+edit,出错,还有如果查询符号我也想让用户选择,该咋办?
begin
with jixieshebeifengji.adoquery1 do
begin
close;
sql.Clear;
sql.add('select * from jixieshebeifengji ');// where '+edit1.Text+'=机构名称');
Sql.add('  where +'':p1''+=:p2 ');//如果查询符号我也想让用户选择,该咋办?
Parameters.ParamByName('p1').Value:=combobox1.Text;//选择查询条件(编号,姓名。)
Parameters.ParamByName('p2').Value:=edit1.Text;//输入值
prepared;
open;end;提示出错:找不到参数p1?
不知道那里有问题?

解决方案 »

  1.   

    Sql.add('  where '':p1''=:p2 ');//
      

  2.   

    参数不能在左边
    sql.add('select * from jixieshebeifengji where '
    Sql.add(combobox1.text+'='''+edot1.text+'''');
      

  3.   

    这样是不行的
    字段名称必须是个字符串,不能是参数
    这样改:
    Sql.add('  where '+trim(combobox1.Text)+'=:p2 ');//如果查询符号我也想让用户选择,该咋办?
    Parameters.ParamByName('p2').Value:=edit1.Text;//输入值
    prepared;
    open;
      

  4.   

    Sql.add('  where  :p=:p2 ');//
      

  5.   

    如果查询符号我也想让用户选择,该咋办?添加一个combobox,动态生成SQL语句。
      

  6.   

    sql.add('select * from jixieshebeifengji ');
    sql.add(' where '+combobox1.Text+'='''+edit1.text+'''');