try
   ……
 Except
   on exception  
   begin
     if e.message in  “'1999-9-13'is not avalid date and time” then
      ShowMessage('不是时间类型。');   
   end
   ShowMessage('不是时间类型。');
 
end

解决方案 »

  1.   

    笨笨,在query(或table,看你用什么了)的beforepost里判断吗,就是类似于这样的:
    try
     strtodatetime(dbedit1.text);
    except
     showmessage('唉,你又输错了!');
    end;
    或这样:
    try
     query1.fieldbyname('myfield').asdatetime;
    except
    ...
      

  2.   

     给你段代码算了:Procedure Tform1.myconvert(sender:Tobject;E:EXception);
    begin
     if (E is EConvertError ) and (POS('date',e.message)<>0) then
     Application.MessageBox ('日期格式输入错误,正确格式为 "yyyy-mm-dd "',
                          '信息提示',MB_OK+MB_iconexclamation)
    else
    Application.MessageBox (Pchar(e.message),'信息提示',MB_OK+MB_iconexclamation)
    end;
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    Application.OnException := myconvert;
    end;end.
      

  3.   

    StrToDateTime(mm/dd/yyyy)
    设置你控制面板里的时区设置中的 短日期设置为 mm-dd-yyyy 先
      

  4.   

    最好是用try...except end这个结构
      

  5.   

    Bob7946(X度空间) 办法可试试!!!
      

  6.   

    to new_life(新生):“不行,我想屏蔽数据库的错误提示 ” 的解决办法很简单:在发现错误后用abort函数就行了(连参数都不用的),即:
    try
    strtodatetime(dbedit1.text);
    except
    begin
      showmessage('唉,你又输错了!');
      abort;   //这样就屏蔽了,但要在delphi外面运行才看的到。
    end;
    end;
      

  7.   

    请注意,应该在::::字段的OnValidate时间中检查。!!!!
      

  8.   

    程序都不走TRY那儿
    只要一离开DBEDIT它就抱数据库的错
      

  9.   

    程序都不走TRY那儿
    只要一离开DBEDIT它就抱数据库的错
      

  10.   

    用DBEDIT控件是,虽然没有POST但是数据已经在数据库中了,所以..............
      

  11.   

    那就不用DBEDIT么
    怎么办呢