('Select '+sqlstr+' from person where ' + sqlsour + '='+''+edit1.Text+''),
建议使用参数,改成
query1.sql.add('Select para1: from person where para2: =para3');参数设置
query1.params[0].asstring:=sqlstr;
query1.params[1].asstring:=sqlsour;
query1.params[2].asstring:=edit1.Text;
如果是数值型的就
query1.params[2].asinteger:=strtoint(edit1.Text);

解决方案 »

  1.   

    query1.SQL.Add('Select '+sqlstr+' from person where ' + sqlsour + '='+''''+edit1.Text+'''')
      

  2.   

    netlib(河外孤星),我说的可不是这个意思啊,这样你给我的那个SQL语句吧,para2中的类型是DOUBLE的,我可以在EDIT中直接输入然后可以查询到结果,但是如果para2是VARCAHR类型的就不行,我不知道为什么会这样的?
      

  3.   

    不是上面各位说的原因,这样就可以了。
    sql支持的语法的问题,用数字,金额等可以直接加,但是日期和文本要用引号刮起来。
    query1.SQL.Add('Select '+sqlstr+' from person where ' + sqlsour + '='''+edit1.Text+''''),