with adoquery1 do
begin
   close;
   sql.clear;
   sql.add('select * from Chanel');
   open;
     CNo:=fieldbyname('ChanelNO').asstring;
   with adoquery2 do
   begin
      close;
      sql.clear;
      sql.add('select * from Powerdata where Date='+quotedstr(datetostr(date()) and ChanelNO=Cno);//就在这里不知怎么写,我要查询的是,当时间等于系统取值的时间,号码等于CNO这个号码时,就查询出来;这样是编译不过去的,我只是提供一个说明,
   end; 
end;

解决方案 »

  1.   

    sql.add('select * from Powerdata where [Date]='+quotedstr(datetostr(Now)+' and ChanelNO='+Cno);上面是在Date字段为字符型,ChanelNO为数值型字段情况下的sql
      

  2.   

    quotedstr(datetostr(Now)),丢了一个括号,如果Date是日期型就不用用QuotedStr了,对于access,前后要加‘#’
      

  3.   

    两个都是字符型的字段,date为何要用中括号
      

  4.   

    两个都是字符型的字段,并用的是ACCESS数据库
      

  5.   


    sql.add('select * from Powerdata where Date=:dt and ChanelNO='''+Cno+'''');//
    Parameters.ParamByName('dt').Value     :=  datetostr(date()) ;如果不行:dt 也加上单引号试试 ,不同数据库对字符串处理不一样。sql.add('select * from Powerdata where Date='':dt'' and ChanelNO='''+Cno+'''');
    Parameters.ParamByName('dt').Value     :=  datetostr(date()) ;
      

  6.   

    sql.add('select * from Powerdata where [Date]='+quotedstr(datetostr(Now))+' and ChanelNO='+Cno); 这样编译不过;
    但这样就过了,运行没有问题,
    sql.Add('select * from powerdata where [date]='+quotedstr(datetostr(date()))+' and ChanelNO='+quotedstr(Cno));