遇到添加记录时自动编号有时重复,刷新不正常的问题
一个添记录到数据库的窗体,打开添加窗体,会自动根据数据表中现有数据的最大编号加1,添加完成后自动刷新另一个窗体中的DBGRID。
问题是添加后经常不刷新,有时自动生成的编号还是上一次的。
这是添加的代码:
procedure Tadduser.FormShow(Sender: TObject);
var
i:integer;
begin
xingming.SetFocus();
varsex:='男';
vardate:=formatdatetime('yyyy',now)+'-'+formatdatetime('mm',now)+'-'+formatdatetime('dd',now);
ADOdataset1.ConnectionString:=constr;
ADOdataset1.Active:=false;
ADOdataset1.CommandText:='select id,usertype from usertype';
ADOdataset1.Active:=true;
if (ADOdataset1.RecordCount>0) then
begin
for i:=1 to ADOdataset1.RecordCount do
begin
usertype.Items.Add(ADOdataset1.FieldValues['usertype']);
ADOdataset1.Next;
end;
usertype.ItemIndex:=0;
end
else
begin
usertype.Text:='请选择分组';
end;
//自动编号
ADOdataset1.Active:=false;
ADOdataset1.CommandText:='select 编号 from userlist order by 编号 desc';
ADOdataset1.Active:=true;
if (ADOdataset1.RecordCount>0) then
begin
userid.Text:= floattostr(strtofloat(ADOdataset1.FieldValues['编号'])+1);
end
else
begin
userid.Text:='1001';
end;
end;
添加铵钮的代码:
onclick后执行:
ADOquery1.SQL.Clear;
ADOquery1.ConnectionString:=constr;
ADOquery1.SQL.Add('insert into userlist(编号,姓名,性别,联系电话,手机,Email,QQ,用户分组,登记日期,地址,备注) values("'+varuserid+'","'+varusername+'","'+varsex+'","'+varphone+'","'+varshouji+'","'+varemail+'","'+varqq+'","'+varusertype+'","'+vardate+'","'+varaddress+'","'+varbeizhu+'")');
ADOquery1.ExecSQL();
MessageBox(Handle,'添加成功!','成功', MB_OK+$00000040);
mainfrm.myuserlist;//刷新
close();
[解决办法]