如何记录系统异常退出的时间并写入数据库? 关于系统登录日志的功能。就是记录登入系统时的时间和退出时间写到数据库的A表里,现在我想请问一下,当系统异常退出时能不能也实现将退出时间写到数据库的A表里?要怎么做? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在数据库控件的close事件里写是不是可以?? 在你的主窗口里定义以下过程:procedure NewOnException(Sender : TObject;E : Exception);并在主窗口的OnCreate里加入Application.OnException := NewOnException;接下来你就可以在NewOnException过程里编写系统异常退出时的操作了。如:if '异常消息'=E.Message thenbegin 将系统时间写入数据库end; 取系統時間now,date,timeDateTimeToStr(now);很多啊發生異常的時候,寫個動作就行了不過正在寫入a表時又發生異常就不行了 既然是异常退出,那么你在自己程序中当然是没有办法捕获的。你可以再写一个程序,用一个Timer对该程序进行扫描,发现句柄不见了,就表示退出了(当然也不是什么好办法,正在退出是也会有记录)。 同意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)写如数据库,应该不用我教你吧 有关sql查询的问题?????????????? 进程权限提升的问题(急) VCL高级应用! 升级既本人来CSDN周月纪念,散分! 一个调试的基础问题 dxDBGrid 的columns中的summary属性怎么用呀?? 蜗牛进阶,高手指点! 有带checkbox的DBGRid吗? 重赏! 关于applyupdate??? 大伙儿是否遇到这种问题? QWERKS的支票是象挂号信一样要签收的还是送到小区就完了。 怎样打印网页 在线等
Application.OnException := NewOnException;接下来你就可以在NewOnException过程里编写系统异常退出时的操作了。如:
if '异常消息'=E.Message then
begin
将系统时间写入数据库
end;
now,date,time
DateTimeToStr(now);很多啊
發生異常的時候,寫個動作就行了
不過正在寫入a表時又發生異常就不行了
你可以再写一个程序,用一个Timer对该程序进行扫描,发现句柄不见了,就表示退出了(当然也不是什么好办法,正在退出是也会有记录)。
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)写如数据库,应该不用我教你吧