大家帮忙看一下我写的代码
可是只实行一次,其他结果都一样
var
card,cardNo:string;
num,num1:integer;
year,mon,date:word;
clientdataset:Tclientdataset;
begin
decodedate(now,year,mon,date);
clientdataset:=Tclientdataset.Create(nil);
clientdataset.RemoteServer:=SocketConnection1;
clientdataset.ProviderName:='DataSetProvider1';
clientdataset.Active:=true;
if clientdataset.RecordCount>0 then
begin
card:=clientdataset.fieldbyname('p').AsString;
num:=strtoint(Copy(card,3,4));
if num<year then
begin
cardNo:='CA'+inttostr(year)+'0001';
end
else
begin
num1:=strtoint(copy(card,7,4));
inc(num1);
if num1<10 then
cardNo:='CA'+ inttostr(num) +'000' +inttostr(num1)
else
if Num1<100 then
cardNo:='CA'+ inttostr(num) +'00' +inttostr(num1)
else
if num1<1000 then
cardNo:='CA'+ inttostr(num) +'0' +inttostr(num1)
else
cardNo:='CA'+ inttostr(num) +inttostr(num1);
end;
end
else
cardno:='CA' + inttostr(year) + '0001';
cxtextedit1.Text:=cardno;
clientdataset.Free;
end;