全部博文(788)
分类:
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
//
我自己解决了~是我提取当前时间之后直接加了最大编号.再截字段,造成主键重复了~
还是谢谢大家
结贴啦~~真是~