table 结构
dm varchar(8),dmmc varchar(40),sl numeric(13,2)
在DBGRIDEH中录入时怎么才能实现这样的功能
当录入重复的DM时马上进行提示,而非执行TABLE.POST时才进行提示
dm varchar(8),dmmc varchar(40),sl numeric(13,2)
在DBGRIDEH中录入时怎么才能实现这样的功能
当录入重复的DM时马上进行提示,而非执行TABLE.POST时才进行提示
三个字段,只有全输入后,还要等光标/输入点离开后DBGridEn后才能判断.
这和POST前后差不多了.
Action:=daAbort;
数据写入是UpdateBatch(arAll)来写的,当换行时是不写入数据库的,而且我要录入几十行数据,如果有重复的数据检查起来十分麻烦。
var
t_DM:string;
begin
if DBGridEh1.selectedindex =0 then
begin
t_DM:=trim(DBGridEh1.SelectedField.Text);
FindBmplu(t_DM);//测试DM是否重复的过程 end;
end;
2,又要检查你刚才已经输入的(比如已经输入了10条),
你如果静态绑定了字段在adoquery里面的话,可以在字段的onchange事件里面检查,但检查仅限于1,2还是不好检查的,因为在输入的过程中你不能把光标移开,所以可以考虑每一条输入完成保存(非提交)后,把缓冲区的这个dm字段的值放到一个stringlist里面,呵呵
我上面说过,在提交时,用sql判数据是否符合要求后插入目标表(输入的数据在临时表中),也就是说先用select * from table where id=xxx按关键字先在表中查一下数据是否存在重复,如果不重复,再用insert into table插入数据