不会吧,这么常见的问题居然没人能回答?100分需求数据库截获时间错误中遇到的问题 (100分)

  • 主题发起人 主题发起人 night
  • 开始时间 开始时间
N

night

Unregistered / Unconfirmed
GUEST, unregistred user!
本人在一时间字段的settext 中编写截获时间异常的代码
代码如下:
if trystrtodate(text,dt) then
sender.Value:=form1.DBEdit1.Text
else
begin
showmessage('error time');
form1.DBEdit1.SetFocus;
end;
遇到问题是 如果我设置此字段的EditMask属性后,错误是截获了,焦点也在改dbedit中,但只能输入一个数字了
但是如果你将焦点离开
在回来就又可输入了,还有就是不设置EditMask属性,没有上述这种情况;
 
用try
except
end截.
 
如果你的字段必须输入时间的话,最好还是用日期/时间控件,DBEDIT控件有很大的毛病,我
对DBEDIT有点丧失信心了!
 
要是用try
except
end
也是要把焦点放回原来的位置呀 现在的问题是放回原来的位置就不能输入了(在设置了EditMask属性后)
要是用时间控间的话,在delphi的数据库控件中没有时间控间,要是字段少可以用普通的控间一个一个的负值
我得数据库中有120个字段呢
 
就是用TRY .....EXCEPT.......END
 
mylixin如果认为就是用TRY .....EXCEPT.......END的话
请麻烦你将你的例子发给我,要是可以的话,我给你300分,
但是希望你能看清我得问题,在设置了editmask的情况下
 
对了,我得email是:tycsky2000@sina.com
 
这种错误不应该用这样的代码完成,因为关系到程序的灵活性

应该只在OnPostError事件中载获错误,并返回信息给用户
procedure TDBMDIChildForm.DataSetPostError(DataSet: TDataSet;
E: EDatabaseError; var Action: TDataAction);
//提交错误,确认放弃
begin
inherited;
if msgbox(format(SErrorInfo,[e.message]),Caption,
MB_YESNO+MB_ICONQUESTION)=ID_YES then
DataSet.Cancel;
Action:=daAbort;
end;

 
楼主还没有解决啊!呵呵!
 
多人接受答案了。
 
后退
顶部