在线的系统进行数据维护时,用户增加一条记录,如果没有保存,会产生一条临时记录。如何在系统中自动删除这条临时记录。
临时记录也会占用id资源,如果在保存的时候再临时申请id,用户将无法保存草稿数据,体验较差。
解决问题的办法有很多种,下面是一种实际采用的机制:
(1)在数据表中增加一列tempflag,默认为1
Alter Table 表名 Add tempflag bit default 1
(2)用户增加记录,立即分配id,并自动保存记录,tempflag自动为1
(3)用户开始编辑数据,如果保存成功,则修改tempflag为0,如果没有保存,在用户浏览刷新表格时,删除所有tempflag为1的记录
(4)为了防止其他用户删除临时记录,在删除临时记录时,增加用户id的识别,如:
Delete From 表名 Where tempflag=1 And userid=用户id
实际的命令如:
DB.ExecuteSingleSQL("delete from " + cTABLE + " where tempflag=1 and userid='" + user.userid + "'");