Delphi 在dbgrideh中表格输入数据时有效性的检查(转)

Posted 癫狂编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi 在dbgrideh中表格输入数据时有效性的检查(转)相关的知识,希望对你有一定的参考价值。

在数据库系统设计中经常要用到在表格中进行数据录入,如何判断在数据导入时的数据有效性呢?下面介绍几种常用的方法与大家交流。

方法一:Dbgrid是与Table,在Table的Column的OnSetText和OnValidate事件中处理。 
1、在OnSetText中判断数据的合法性,如果不合法,在OnValidate处理,如果不合法则abort

2、抛出一个异常Raise,即可保证焦点不会丢失。


也可以在Table1.BeforePost里面处理,如果不符合要求,ShowMessage(""),然后Abort;


方法二:如果是Adoquery ,在Column的OnSetText和OnValidate事件中处理。 
在OnValidate处理,如果不合法则abort。

procedure Tfrm_cginput.q_maind_dateValidate(Sender: TField);

begin
if Sender.FieldName=‘d_date‘ then
if (Sender.AsDateTime>_DEnddate) or (Sender.AsDateTime<_DStartdate) then
begin
showmessage(‘日期超出范围‘);
abort;
end;
end;


方法三:


可以用DBGrid1ColExit事件进行。 
procedure TForm1.DBGrid1ColExit(Sender: TObject); 
begin 
case DBGrid1.SelectedIndex of 
0:if DBGrid1.DataSource.DataSet.Fields[0].value<>‘我想要的值‘ then 
于吗于吗。 
1: 
.. 
end; 
end;

以上是关于Delphi 在dbgrideh中表格输入数据时有效性的检查(转)的主要内容,如果未能解决你的问题,请参考以下文章

请问在Delphi中利用DBGridEh加一列复选框时不能选择的问题怎么解决?

Delphi DbGridEh实现表格没有内容的渐变效果

delphi DBgridEh多行单元格如何实现~急!!

delphi的dbgrideh中有个区域选中数据的功能。怎样才能知道 选中区域的最上面的行和最下面的行?

你好,请教个问题,就是delphi中DBGridEh的统计行数据如何实现的

delphi dbgrideh导入excel 中