Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1225009
  • 博文数量: 788
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 7005
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 15:52
文章存档

2017年(81)

2011年(1)

2009年(369)

2008年(337)

分类:

2009-02-11 16:54:28



为什么我查出来都是没有值的....请大家指点...

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

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      
  //

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

结贴啦~~真是~

阅读(333) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~