读书人

遇到添加记录时自动编号有时重复刷新

发布时间: 2012-03-07 09:13:51 作者: rapoo

遇到添加记录时自动编号有时重复,刷新不正常的问题
一个添记录到数据库的窗体,打开添加窗体,会自动根据数据表中现有数据的最大编号加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();

[解决办法]

探讨
在添加完记录后自动刷新显示列表也延时,这是什么原因?

[解决办法]
探讨
有时候添加了新记录后,等好几秒才能显示出来,这是怎么回事吗?


数据表中共十来条记录

读书人网 >.NET

热点推荐