在一个局域网的环境写了个程序,在服务器机上以SQL 2000做数据库,里面有一个表为用户信息存帐号密码。
局域网中每台电脑每次开机时都会有一个程序运行,要使用表里的帐号和密码登录,登录成功后把开始使用电脑的时间和使用帐号写入到SQL,为了防止一个帐号同时在多台电脑里用,所以加了一个判断,登录成功后把这个值改为1,关机时把这个值改为0,但是现在有了问题,如果是突然停电了(不正确关机),或是网络连接有问题了,这个值就改不了了,以至这个帐号下次登录时系统还认为是已经登录。
请教如何解决这个问题。

解决方案 »

  1.   

    在本地计算机中做纪录,比如注册表之类的,在登陆时检测,比如开始时设置值为1关机时设置为0,当你开机时发现值还是1的话表明有可能非常关机了
      

  2.   


    我是写在数据库里的,可是如果那台机中途出了问题,连不上服务器了,那不是改不了数据库了吗?
      

  3.   

    只要不是24小时都有人上,可以用作业每天凌晨某个时间更新此表的这个值为0
      

  4.   


    有可能这个帐号一天内要重复登录好几次呢!要是其中有一次没改了数据表,那就登录不了了,不能等到晚上再更新啊!
      

  5.   

    你还学程序呢?说得这么清楚还不懂
    你在写数据库之前先查询下当前值,如果不是退出时应该填的值表示可能非法关机了
      

  6.   


    真是遗憾,偶没读过什么书,电脑根本就是自学,基本上没有理论知识。所以就很难听懂各高人之言了。我想请教的是:如果这个帐号登录了,把值修改成1代表在线,那如果另一个人再用这个帐号去另一台机登录,那会认为在线,就不能登录。但是如果因为前一次的不正确关机判读为在线,那这个帐号不就用不了了。恕偶太笨。
      

  7.   

    怎么不能用啊?在登陆时检测是1表示非法关机了,你只需要把开关机的计数加1就行了如果你想支持同时多个用户的话,那么可以累加退出累减,如果登陆时不为0表示为几就表示有几台非法关机,你登陆的机器就把这个值减一
      

  8.   

    上面的说法有错误,
    如果要支持多用户就用多个字段纪录最保险
      

  9.   

    还有学习程序根你读过多少书没有很大关系,遇到困难不要给自己找借口,而是要去想怎么解决。你说的这个问题其实很简单,往往还没有你在具体现实生活中遇到的一些琐碎小事复杂,关键在于你要自己动手,在动手前先把思路整理清楚。还有在这里很多人都没上过什么学的,但是高手还是很多的,读书和看过多少书和程序上的造诣是没有关键性的定论的,我觉得程序关键在于坚持和积累,当然个人的天份也是相当重要的,差别在于做一件同样的事情的不同表现方式而已,但是结果都是一样。
      

  10.   

    主要都是你们两个在表演,我也来看看