delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks
取表的最大编号 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiBase/html/delphi_20061210224437206.html
为什么我查出来都是没有值的....请大家指点...

请把你的语句贴出来,好吗?

query3.SQL.Add('select   max(id)   as   maxid   from   userload');  
  query3.Open;  
  t:=query3.FieldValues['maxid']   ;  
   
  这是关键的部分,然后我赋值给其余变量都说我是空值...但是,表内有一条记录的时候不出错,没记录就出错~

query3.SQL.Add('select   max(id)   as   maxid   from   userload');  
  query3.Open;  
  if     not   query3.SQL.empty   then    
  t:=query3.FieldValues['maxid']   ;

这样不能解决本质问题啊~那如果表内没有记录~不是还是错的!?

var  
  a,b:string;  
  b:=formatdatetime('yyyymmdd',date);  
   
   
  query5.SQL.Add('select   max(docID)   as   maxid   from   doctor');  
      query5.SQL.Add('where   docID   like   :docID');  
      query5.ParamByName('docID').AsString:=s+'%';  
        query5.Open;  
        a:=query5.fieldbyname('maxid').AsString;  
        if   a=''then  
          b:=b+'1'  
          else  
              begin  
        b:=b+inttostr(strtoint(trim(a))+1);  
        system.Delete(b,1,2);  
   
  doctor.Append;  
  doctor.Fields[0].AsString:=b;  
  我现在改成这样了.怎么第一条可以,加第二条有错?

若表中没有记录,则查询到的是空,你可以这样判断,  
  if   query3.fieldbyname('maxid')=''   then           //表中没有记录  
  //  
  else      
  //

我自己解决了~是我提取当前时间之后直接加了最大编号.再截字段,造成主键重复了~  
  还是谢谢大家

结贴啦~~真是~

posted on 2009-02-11 16:50 delphi2007 阅读(133) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。