我是这样用的:ADOQuery.SQL.Clear;
ADOQuery.SQL.add('select * from a where name=:name');
ADOQuery.Parambyname('name').asstring:='famu';
ADOQuery.open;结果提示我用了无效的SQL语句。

解决方案 »

  1.   

    我没有试过,但觉的你where 后面的语句好象少点什么。比如where xq='''+dq+''' and Start_date=:'''+DatetoStr(Start_date)+''' and yhbh=:'''+yhbh+''''
    你自己去试试吧!
      

  2.   

    试试这个
      ADOQuery.Parameters.ParamValues(['name']) := 'famu';
      

  3.   

    gomen,虽然你好像不太懂delphi,但是你的想法还是值得借鉴的,谢谢你,给你10分吧
      

  4.   

    兄弟,你的 <snip..>'...where xq="DQ"...'是不对的,可以这样 'where xq='+''''+'DQ'+''''+....'才能在正确的被DataControl识别
      

  5.   

    另外的一个仁兄,name在sql中是关键字,所以要加中括号,愿意与您探讨。
      

  6.   

    我是可以的,你先用var exp:string,然后用 exp:=format('select ....',[])生成表达示,在通过调试看看表达式有没有问题,注意生成单引号时要两个单引号,百分号也一样。最后用sql.add(exp)就可以了