关于系统登录日志的功能。就是记录登入系统时的时间和退出时间写到数据库的A表里,
现在我想请问一下,当系统异常退出时能不能也实现将退出时间写到数据库的A表里?
要怎么做?

解决方案 »

  1.   

    在数据库控件的close事件里写是不是可以??
      

  2.   

    在你的主窗口里定义以下过程:procedure NewOnException(Sender : TObject;E : Exception);并在主窗口的OnCreate里加入
    Application.OnException := NewOnException;接下来你就可以在NewOnException过程里编写系统异常退出时的操作了。如:
    if '异常消息'=E.Message then
    begin
       将系统时间写入数据库
    end;
      

  3.   

    取系統時間
    now,date,time
    DateTimeToStr(now);很多啊
    發生異常的時候,寫個動作就行了
    不過正在寫入a表時又發生異常就不行了
      

  4.   

    既然是异常退出,那么你在自己程序中当然是没有办法捕获的。
    你可以再写一个程序,用一个Timer对该程序进行扫描,发现句柄不见了,就表示退出了(当然也不是什么好办法,正在退出是也会有记录)。
      

  5.   

    同意wenxj()的方法,实际上我公司系统的错误捕捉就是这样实现的 :
    procedure Tform1.FormCreate(Sender: TObject);
    begin
         Application.OnException := AppException;
    end;
    procedure Tform1.AppException(Sender: TObject; E: Exception);
    var  p_cwdh:integer;      //错误代号
         p_cwxx:string;       //错误信息
    begin
      p_cwdh:=Getlasterror;
      p_cwxx:=e.Message ;
      pro_cwxxdl(p_cwdh,p_cwxx); //将错误信息(p_cwdh,p_cwxx)写如数据库
    end;过程:pro_cwxxdl(p_cwdh,p_cwxx); //将错误信息(p_cwdh,p_cwxx)写如数据库,应该不用我教你吧