注册 登录
编程论坛 Delphi论坛

[求助] 自动产生编号的问题

lindaricky 发布于 2007-09-21 14:51, 1503 次点击
各位好!我现在正在写一个电脑设备管理的小程序,在做新增电脑设备登记表时,想让程序自动产生编号,我写了一个,具体代码如下,现在只能问题是,怎样让编号在原来的基础上自动加1,现在自动显示的还是上个编号,请各位帮帮看看,谢谢!
procedure TForm21.FormCreate(Sender: TObject);
var
d,id,sql:string;
begin
sql:='select max(id) as ss from [addsb]';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.sql.Add(sql);
adoquery1.Open;
id:=adoquery1.fieldbyname('ss').AsString;
if id=null then
id:=inttostr(0)
else
d:=formatdatetime('yymmdd',now);
edit1.Text:='XD'+d+id;
end;
2 回复
#2
wangsai_0082007-09-23 14:38
procedure TForm21.FormCreate(Sender: TObject);
var
d,sql:string;
id:integer;
begin
sql:='select max(id) as ss from [addsb]';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.sql.Add(sql);
adoquery1.Open;
id:=adoquery1.fieldvalue['ss'];
if id=null then
id:=inttostr(0)
else
begin
d:=formatdatetime('yymmdd',now);
id:=id+1;
end;
edit1.Text:='XD'+datetimetostr(d)+inttostr(id);
end;
///这样试试!
#3
cobby2007-09-24 17:18

其实你在数据库中设计表时就可以指定自动加1的列。如果要程序实现,可以在添加数据行前先统计原有行数量,然后加1就是新行的编号了

1