一名为dbeDate的TDBEdit对应于表中的一名为DATE的字段。
插入数据时,往dbeDate中写入数据。如果写入的数据不能够转换成DATETIME类型,则当聚焦离开dbeDate时,就会报ConvertError异常,请问怎样才能捕捉这个异常?怎样才能很好地解决这样的问题?
=========
谢谢!

解决方案 »

  1.   

    try
        //your code...
      except
        on EConvertError do
        begin
          //handle the exception...
        end;
      end;
      

  2.   

    我觉得最好的办法是把处理过程写到Tdataset组件的onediterror时间里面。如下
    procedure TForm1.ADOQuery1EditError(DataSet: TDataSet; E: EDatabaseError;
      var Action: TDataAction);
    begin
      if E.message='某个特定的错误' then
         begin
            showmessage('格式不兼容');
            Action:=daAbort;   //放弃操作
         end;
    end;
    同样,还有ondeleteerror,onposterror等方法。
      

  3.   

    to RamjetZhang(王小桃):
      这我当然知道,但就是不知道应该在哪里捕捉。
    to  ndujun(小军):
        在这里不行,还没有运行到这个事件,异常就已经抛出了。
      

  4.   

    那你在TDBEdit的onexit事件中写一条检察语句不行吗?
      

  5.   

    to ndujun(小军) :
    不行!还没有运行到TDBEdit的onexit这个事件,异常就已经抛出了。
      

  6.   

    还是不要用data-aware组件的好,统统用正常的edit,combo等来输入;然后自己写一个query来update;这样在update时候就可以抓那个异常了。
    至于datatime类型,edit控件on exit时候就能验证合法性了。