程序异常终止(50分)

  • 主题发起人 主题发起人 gongy
  • 开始时间 开始时间
G

gongy

Unregistered / Unconfirmed
GUEST, unregistred user!
我想请教一个问题,当程序异常终止,但我又想在终止的时候执行一个有关数据库连接
的一个函数,怎么样才能捕捉到。
比如:
程序登录时设置数据库表中一个字段的值未‘0’,但无论发生什么,我想要在程序
结束时将该字段值设为‘1’
 
如果掉电?!
Application.Destory中处理可以吗?关键是要捕获程序被Destory的消息。
 
根本不可能在程序中这么写!
就象blue_morning说的,如果掉电怎么办?
要看你是什么数据库,如果是象ORACLE等大型数据库的话,可以用别的办法实现。
 
1. 我在Destory中试过,但是数据库连接已经被断开了
2. 我现在使用ORACLE的数据库,有什么办法可以解决吗
 
你可以在程序启动时锁定一条记录,如果锁定成功,则相当于你判断那个字段的值为1了。
但是要注意,这个锁定要用独立的SESSION,因为一旦Rollback或Commit,那个锁定就失效了。
还有一个办法是用Oracle的触发器,每次登录、退出数据库都会触发一个触发器的,你可以
在这里写你的代码,比如记录用户的登录等等。
create or replace trigger SYS.BeforeUserLogOff
before LOGOFF on DATABASE
create or replace trigger SYS.AfterUserLogon
after LOGON on DATABASE
注:Oracle8i以上版本
 
你可以存在本地客戶機上﹐等下次執行時再存進去。
 
谢谢,你们的建议我多看了,我想我知道怎么解决了
 
多人接受答案了。
 
后退
顶部