数据输入合法性检查
来源:互联网 发布:粤城电器淘宝店怎么样 编辑:程序博客网 时间:2024/05/01 20:57
OnExit只在离开表格时才会发生,应该在OnSelectCell事件上也加上校验。
如下例,CheckData函数检查指定单元数据的合法性,在OnSelectCell和
OnExit事件中调用该函数进行校验。
如下例,CheckData函数检查指定单元数据的合法性,在OnSelectCell和
OnExit事件中调用该函数进行校验。
function TForm1.CheckData(Row, Col: integer): boolean;
{对指定单元数据进行校验,要求数据必须为整数}
begin
Result := True;
if StringGrid1.Cells[Col, Row] = '' then
Exit;
try
StrToInt(StringGrid1.Cells[Col, Row]);
except
ShowMessage('Cell(' + IntToStr(Row) + ',' + IntToStr(Col) + ')' +
' is not a valid integer value');
Result := False;
end;
end;
procedure TForm1.StringGrid1SelectCell(Sender: TObject; Col, Row: Integer;
var CanSelect: Boolean);
begin
CanSelect := CheckData(StringGrid1.Row, StringGrid1.Col);
end;
procedure TForm1.StringGrid1Exit(Sender: TObject);
begin
if not CheckData(StringGrid1.Row, StringGrid1.Col) then
StringGrid1.SetFocus;
end;
{对指定单元数据进行校验,要求数据必须为整数}
begin
Result := True;
if StringGrid1.Cells[Col, Row] = '' then
Exit;
try
StrToInt(StringGrid1.Cells[Col, Row]);
except
ShowMessage('Cell(' + IntToStr(Row) + ',' + IntToStr(Col) + ')' +
' is not a valid integer value');
Result := False;
end;
end;
procedure TForm1.StringGrid1SelectCell(Sender: TObject; Col, Row: Integer;
var CanSelect: Boolean);
begin
CanSelect := CheckData(StringGrid1.Row, StringGrid1.Col);
end;
procedure TForm1.StringGrid1Exit(Sender: TObject);
begin
if not CheckData(StringGrid1.Row, StringGrid1.Col) then
StringGrid1.SetFocus;
end;
在相關數據表中(table,adoquery)的OnPostError()事件中判斷:
......
const
eKeyViol=9729; //主鍵必須唯一
eReqdErr=9732; //主鍵不能為空
......
procedure TDataModule1.Q_XLSPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
if (E is EDBEngineError) then
if (E as EDBEngineError).Errors[0].ErrorCode=eKeyViol then
begin
MessageDlg('提交失敗:成本項目名稱不能重復!',mtInformation,[mbOK],0);
Abort;
end
else if (E as EDBEngineError).Errors[0].ErrorCode=eReqdErr then
begin
MessageDlg('提交失敗:成本項目名稱不能為空!',mtInformation,[mbOK],0);
Abort;
end;
end;
eKeyViol=9729; //主鍵必須唯一
eReqdErr=9732; //主鍵不能為空
......
procedure TDataModule1.Q_XLSPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
if (E is EDBEngineError) then
if (E as EDBEngineError).Errors[0].ErrorCode=eKeyViol then
begin
MessageDlg('提交失敗:成本項目名稱不能重復!',mtInformation,[mbOK],0);
Abort;
end
else if (E as EDBEngineError).Errors[0].ErrorCode=eReqdErr then
begin
MessageDlg('提交失敗:成本項目名稱不能為空!',mtInformation,[mbOK],0);
Abort;
end;
end;
使焦点返回Grid.SelectedIndex := n;
取消修改
abort;
- 数据输入合法性检查
- 合法性检查
- 用Python写一段检查输入合法性的小程序
- 输入数据合法性测试的思考
- 表单中文本框中数据合法性的检查
- 检查数据库数据字段命名规范和合法性的脚本
- IP地址合法性检查
- 邮件地址合法性正则检查
- 邮件合法性检查
- java检查URL合法性
- JAVA检查Email合法性
- JAVA日期合法性检查
- java 检查 URL 合法性
- shell检查IP合法性
- shell: ip合法性检查
- 检查邮箱合法性
- 括号序列合法性检查
- Python动态类型,怎么判断是输入数据的合法性?
- 南航机组人员成功制止恐怖事件获奖40万元
- log4net使用详解
- UNIX系统安全危机评估手段
- 完全解密企业信息安全风险评估
- 互联网的局限
- 数据输入合法性检查
- 僵尸网络模型分析及解决方案
- 今天, 能力最大的两封邮件
- 企业网对DoS攻击的防御方法
- java类中包含静态成员、方法时的打印顺序
- 双机热备解决方案
- js优化
- 防御DDoS攻击的实时监测模型
- 黑客的社会工程攻击新技术:机遇型攻击