数据库中有某个表的flag字段,用户登陆后等于1,退出后等于0,问题是非正常退出的情况,例如网线断了,客户机死机了等等,即flag始终是1,导致无法再登陆!请问有好的方法吗?

解决方案 »

  1.   

    很简单,答案就在LZ的问题中.
    数据库中有某个表的flag字段,用户登陆后等于1,退出后等于0,问题是非正常退出的情况,例如网线断了,客户机死机了等等,即flag始终是1,导致无法再登陆!
    在客户端设置同样字段即可解决问题.先来看看我的故事...LZ想过WINDOWS怎么知道自己是异常关闭的吗?答:其实我也不知道,只是从这个得到了一点启示.记得几年前做三星DIY软件的时候曾经想过..如果自己的软件被异常关闭的问题,因为大量的数据运算而我算法不行,所以机器不行程序就挂...说多了....可以用简单的方法来知道程序异常关闭....我的方法是当程序开启后在程序目录下建立一个空文件,当退出时删除这个文件.而每次启动程序时首先在MAIN函数里判断文件是否存在,如果存在,说明是异常关闭.对于LZ来讲,做数据库,那你就在客户端多设置一个字段,当程序启动后,设置其为1,并保存之,结束前将其设置为0.这样一来,启动时检查它,为1时象服务器发出撤消以前登陆命令.
      

  2.   

    非常感谢 zcsor,你的方法很有帮助。
    我还想问一下,你(zcsor)说的“那你就在客户端多设置一个字段”,是指保存在客户机上吗?如果A客户机以用户USER1登陆-->意外退出,此时B客户机同样以用户USER1登陆,这样的话能否保证登陆上?
      

  3.   

    保存在客户.
    不能.想实现的话有很多办法..思路基本都是区分客户机,可以用IP,硬盘序列号,主版序列号等等带有标志性的....当然继续的操作要看你是否允许同帐户不同机器登陆了.如果是想一个用户死机后再在其他计算机上登陆,这时你可以向原登陆客户发送消息等待返回,如果超时则断开他(认为他异常退出)让新用户登陆并登记其IP等信息以备验证