var
    datetime1:Tdatetime;
    id1:integer;
    time1:Tdatetime;
begin
         ADODataSet2.Close;
         ADODataSet2.CommandText:='USE DB Select * From Tab1 Where ID='+inttostr(5);
         ADODataSet2.Open;
         datetime1:=ADODataSet2.FieldValues['Time'];
         ADODataSet2.Close;         ADODataSet1.Close;
         ADODataSet1.CommandText:='USE DB Select * From Tab2 Where Time='+datetostr(datetime1);
         ADODataSet1.Open;
         id1:= ADODataSet1.FieldValues['ID'];//此处为什么提示为空值呢!!?
         ADODataSet1.Close;     label1.Caption:=inttostr(id1);
end;如上程序,有什么错误,请赐教

解决方案 »

  1.   

    你先看看 有数据吗被select吗
      

  2.   

       1、可能是查询没有结果
       2、我没用过这样取值,不知道对不对,不过 可以 用Id1 := ado.fieldbyname('id').asinteger;
       3、再说了ADODataSet1 一般不用来查询的吧? 用adoquery吧
      

  3.   

    日期常量在sql里要加引号的
    ADODataSet1.CommandText:='USE DB Select * From Tab2 Where Time='+quotedstr(datetostr(datetime1));
      

  4.   

    ... Time='+datetostr(datetime1);datetime1包括有日期+时间,最好是格式化一下,还有2边要加上引号
    最好是把SQL语句放在查询分析嚣里调试一下,看看结果是什么
      

  5.   

    ... Time='+datetostr(datetime1);
    处有问题,数据库连接需要选项时间格式,sql中时间格式需要加单引号,但delphi字符串是单引号,,
    三楼 sz_haitao 正解,thanks!!