adodm.report1ADOQ.Close;
  adodm.report1ADOQ.SQL.Clear;
  adodm.report1ADOQ.SQL.Add('select Sum(hire) from borrowed where borrowtime=:A');
  adodm.report1ADOQ.Parameters.ParamByName('A').Value:=DateTimePicker5.DateTime;
  adodm.report1ADOQ.Open;
  showmessage(adodm.report1ADOQ.Fields[0].AsString);
为什么showmessage显示为空,我borrowed表里是有值的,
  adodm.report1ADOQ.Close;
  adodm.report1ADOQ.SQL.Clear;
  adodm.report1ADOQ.SQL.Add('select Sum(hire) from borrowed where goodsno=''1''');
  adodm.report1ADOQ.Open;
  showmessage(adodm.report1ADOQ.Fields[0].AsString);这样又可以,难道是DateTimePicker这里错了吗,请高手帮忙

解决方案 »

  1.   

    应该是参数类型的问题
    这样试下:
    adodm.report1ADOQ.SQL.Add('select Sum(hire) from borrowed where borrowtime=:A'); 
    换为
    adodm.report1ADOQ.SQL.Add('select Sum(hire) from borrowed where borrowtime=''2008-04-28'''); 2008-04-28 可以是你borrowtime里的一个值,看一下ok不
      

  2.   

    真奇怪了,用''2008-04-28'''后能得出我想要的结果,但为什么用DateTimePicker5.DateTime不行呢
      

  3.   

    你用的Datetime是包含时间的 如果记录里没有完全匹配的时间 肯定就没值
    可以换date 其实直接
    adodm.report1ADOQ.SQL.Add('select Sum(hire) from borrowed where borrowtime='+
    QuotedStr(formatdatetime('yyyy-MM-dd',DateTimePicker5.DateTime)));  也可以
      

  4.   

    adodm.report1ADOQ.SQL.Add('select Sum(hire) from borrowed where borrowtime=convent(char(10),:A,120)');