vb 求教,想在程序结束时,运行语句。

ffifeng 2013-07-10 02:15:42
如题:1.想在程序结束时,运行语句。把数据库中用户登陆的状态改掉。怎么写代码。
2.如果程序意外结束,如何更改数据库中的用户状态。
菜鸟分不多,还希望多多指教。
...全文
641 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
今晚揍老虎 2015-09-04
  • 打赏
  • 举报
回复
引用 8 楼 ffifeng 的回复:
2楼和6楼的方法对我启发性很强。这几天一直在思考这个问题,想找一个数据库自动检测方法,当与某个客户端与之断开链接,则自动调用存储过程将对应的客户登录状态改为未登录。不知道哪位高手有这样的方法。
可以写个监视的服务端。
ffifeng 2013-07-12
  • 打赏
  • 举报
回复
2楼和6楼的方法对我启发性很强。这几天一直在思考这个问题,想找一个数据库自动检测方法,当与某个客户端与之断开链接,则自动调用存储过程将对应的客户登录状态改为未登录。不知道哪位高手有这样的方法。
赵4老师 2013-07-12
  • 打赏
  • 举报
回复
不要企图优雅的结束(因为这是不可能办到的) 而要在烂的不能再烂的摊子上也能重整河山!
现在还是人类 2013-07-11
  • 打赏
  • 举报
回复
本机的数据库无所谓登录状态,因为全可放到程序变量里识别,只有网络数据访问对这种需求大点。如果是三层结构,这种问题就直接可在服务程序里通过用户连接状态可判断,如果只是用数据库对象访问远程数据库,可以在数据库相应用户表中多加两个字段,“最后在线时间”、“用户识别码”,通过“最后在线时间”可判断某个帐号是否符合超时条件,通过“用户识别码”可防止一个帐号多个用户同时使用。 “用户识别码”其实是一个随机码,可由登录时间+用户IP+计算机名等信息构成一个具备唯一性的编码,当用户登陆时,发现“用户识别码”为空,则将自己启动程序时产生的“用户识别码”信息放到数据库中,然后设置“最后在线时间”为当前时间,当用户退出时,将“用户识别码”设置为空,然后设置登录状态为关闭。在程序登录后运行时,用定时检测或当需要操作数据库时检测“用户识别码”是否与自己的“用户识别码”一致,如果一致将更新“最后在线时间”为当前时间,如果不一致,程序自动退出到登录状态,并告知当前使用者有用户在某某主机,IP地址为XXX在XXX时间用了相同的用户帐号登录,要求用户输入帐号或密码登录。 当然,登录过程也可改为先检测“用户识别码”是否与自己的一致,如果不一致,判断用户“最后在线时间”是否在有效期内,如果超时,将替换“用户识别码”和设置“最后在线时间”等,如果没有超时,提示用户在某某主机,IP地址为XXX在XXX时间用了相同的用户帐号登录,可询问是否强行登录等。至于具体怎么用看你自己了,反正多这两个字段灵活性可以很强。
ffifeng 2013-07-11
  • 打赏
  • 举报
回复
引用 4 楼 cqq_chen 的回复:
[quote=引用 2 楼 ffifeng 的回复:] 如果是意外关闭呢?数据库那边咋处理呀?
说明错误处理机制有问题[/quote] 我想问的就是处理错误关闭程序的补救方法呀,本地程序意外关闭,数据库服务器那边怎么知道,然后自动把该用户的登陆状态改为‘未登录’
cqq_chen 2013-07-11
  • 打赏
  • 举报
回复
引用 2 楼 ffifeng 的回复:
如果是意外关闭呢?数据库那边咋处理呀?
说明错误处理机制有问题
worldy 2013-07-10
  • 打赏
  • 举报
回复
引用 2 楼 ffifeng 的回复:
如果是意外关闭呢?数据库那边咋处理呀?
除非ide调试状态,或程序崩溃,否则一般都要经历form_unload
ffifeng 2013-07-10
  • 打赏
  • 举报
回复
如果是意外关闭呢?数据库那边咋处理呀?
of123 2013-07-10
  • 打赏
  • 举报
回复
在 Form_Unload 事件中添加你的代码。

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧