在data module中加入dbExpress中的SimpleDateSet控件.  data module命名为dm,SimpleDateSet命名为sdt
想问下dm.sdt.DataSet和dm.sdt有什么不同

var
 
 r,i,d:string
begin
 d:=FormatDateTime('YYYYMMDD',Now);
 i:='s:='select max(incard_no) incard_no from yyyy where incard_no like '+''''+datt+'%'+'''';
  dm.sdt.Active:=false;
  dm.sdt.DataSet.CommandText:=i;
  dm.sdt.Active:=true;
 if dm.sdt.IsEmpty(和dm.sdt.DataSet.IsEmpty有什么区别)
  then ...
  else ...
.....
为什么在dm.sdt.IsEmpty为空时then后面的语句不执行?
用了dm.sdt.DataSet.IsEmpty却能执行,但是当dm.sdt.DataSet.IsEmpty不空时else后面的语句不执行?
请高手解答.
 

解决方案 »

  1.   

    if dm.sdt.IsEmpty then
      //...
    else
      //...dm.sdt.IsEmpty为空时then不执行?在哪里跟踪到的,应当不会呀至于dm.sdt.IsEmpty和dm.sdt.DataSet.IsEmpty是不是等效,根本的办法是看一下SimpleDateSet组件源码
      

  2.   

    就是想请教下dm.sdt.IsEmpty和dm.sdt.DataSet.IsEmpty的区别.
      

  3.   

    var r,i,t,d:string 
    begin 
    d:=FormatDateTime('YYYYMMDD',Now); 
    i:='s:='select max(incard_no) incard_no from yyyy where incard_no like '+''''+d+'%'+''''; 
      dm.sdt.Active:=false; 
      dm.sdt.DataSet.CommandText:=i; 
      dm.sdt.Active:=true; 
    if dm.sdt.DataSet.IsEmpty 
        then 
              begin
               t:=d+'01';
              end
        else 
              begin
              t:=dm.sdt.Fields.Fields[0].AsString;
              t:=inttostr(strtoint(t)+1);
              end;
          ......插入数值
    为什么在插入一条记录后,他还是判断空为真。哪位老师能帮忙看下吗?
      

  4.   

    在data module中加入dbExpress中的SimpleDateSet控件.  data module命名为dm,SimpleDateSet命名为sdt 
     
    var r,i,t,d:string 
    begin 
    d:=FormatDateTime('YYYYMMDD',Now); 
    i:='s:='select max(incard_no) incard_no from yyyy where incard_no like '+''''+d+'%'+''''; 
      dm.sdt.Active:=false; 
      dm.sdt.DataSet.CommandText:=i; 
      dm.sdt.Active:=true; 
    if dm.sdt.DataSet.IsEmpty 
        then 
              begin 
              t:=d+'01'; 
              end 
        else 
              begin 
              t:=dm.sdt.Fields.Fields[0].AsString; 
              t:=inttostr(strtoint(t)+1); 
              end; 
          ......插入数值 
    为什么在插入一条记录后,他还是判断空为真。哪位老师能帮忙看下吗? 
      

  5.   

    建议你把if dm.sdt.DataSet.IsEmpty改下变为
    if dm.sdt.Fields.Fields[0].AsString='' then ...
    else ...
      

  6.   

    谢谢了,用这种方法可以.只是 还是没搞明白dm.sdt.DataSet.IsEmpty的意思.