sql.add('select*from 表名 where 字段名=...')如何让表名和字段名可变,比如说让edt.text的输入?

解决方案 »

  1.   

    sql.add('select*from '+edit1.text+' where 字段名='''+edit2.text+'''')
      

  2.   

    sql.add('select*from '+QuotedStr(edit1.text)+' where 字段名='''+QuotedStr(edit2.text)+'''')
      

  3.   

    在执行之前最好对两个edit中的内容进行非空校验
      

  4.   

    sql.add('exec('+''select*from''+QuotedStr(edit1.text)+') ') 
      

  5.   

    sql.add('select * from '+QuotedStr(edit1.text)+' where '+QuotedStr(edit2.text)+' like '''+'%'+edit17.Text+'%'+'''');
      

  6.   

    'select*from '+ edit1.text + 'where ' + edit2.text + '="' + edit3.text + '"'
    不过如果字段是非字符型的话,这样或许会出现问题
    所以我推荐你这样做
    sql.add('select*from '+ edit1.text + 'where ' + edit2.text + '=:' + edit2.text);
    AdoQuery1.Parameters.ParamByName('edit2.text').Value :=trim(Tedit1.Text);//这里如果非字符的话,就转一下,比如:如果是货币型的话,用strtocurrdef,这样可避免空值出现的问题。
    AdoQuery1.Parameters.ParamByName('edit2.text').Value :=strtocurrdef(trim(tedit6.Text),0.00);