保存时灵异了,大伙帮我看看
问题比较简单,但是我脑袋被门板夹过了,不知道怎么弄了。
界面是一张内存表TMemTableEh,连一个DataSource,下带一个Dbgrid,然后一个新增和保存按钮,表字段3个String类型。
这时我点击新增,在dbgrid中输入输入一条后回车,点击保存。因为光标在第二行,我一般会对此行保存一下,这时
会保存一条空的记录。大家看我的代码
//这是保存时调用的函数function Tfrmabc.DoSave: Integer;begin if BzWorkStatus=wsBrowse then //BzWorkStatus即为内存表的状态 begin ShowMessage('浏览状态无法保存记录!'); exit; end; SetBzWorkStatus; //此事件判断一下如果状态为dsEdit或dsInsert时,保存最后一条记录 {代码大致为 if (Components[i] as TMemTableEh).State in [dsEdit, dsInsert] then (Components[i] as TMemTableEh).Post;} //后面就是一个检查字段不能为空,否则退出 sResult := CheckFieldValidity(cftNull,dataset,字段1,字段2,字段3); if sResult<>'' then begin BzMessageBox('提示:','['+sResult+'] 不得为空!',DM_INFO); exit; end; //最后就是一个xml的提交到后台数据库保存的过程 protocol事件 //代码略。。。 Protocol;