我写了一包房收银程序,在包房计费时,有是会出现时间出错,如晚上9点结账时,结果时变成第二天9点或第二天其它时间了。并且不是在所有机器上都出问题,有些会,有些又不会。安装的都是Win 2k系统、SQL Server 2k。请教各位程序员帮忙,我测不出问题的原因?
[email protected]

解决方案 »

  1.   

    有没有可能被一些人改了
    你最好以SQL SERVER上的时间为准(getdate)
    不要考虑本地机上的时间
    而且在一启动程序就自动同步本地机和服务器的时间
    select getdate() 
    返回的结果直接来设置本地机时间
      

  2.   


    你的不是C/S系统?
    每台机上都有一个SQL SERVER?
      

  3.   

    我采用的是c/s系统,只有一个数据库服务器。
    奇怪的是,这种现象不定,有时会出错,有时也不出错。
    客户是不可能更改时间的,他们不懂sql。
    也不是病毒。真把我搞糊了。
      

  4.   

    1. 时间是本地的还是服务器上的
    2. 录入时间的DateTimePicker的time是否设的为0:00:00
    3. 什么时候从服务器取时间是一开始还是随时
    4. 有否自已的Timer控件
      

  5.   

    比如你的存储过程或QUERY中有这样一句
    insert into table(time1) values(@time1)
    这时你的@TIme1参数是不是来源于本地时间?
    象这样(BDE)
    parambyname('@time1').asdatetime:=date;
    这样就完全可能出问题(在修改本地时间后)
    如写成这样
    insert into table(time1) values(getdate())
    这时采用的是SQL SERVER系统时间
    就不会出错
    (我以前做的系统也出现这个问题
    因为不在当地
    想了好一会儿才明白过来
    因为无法控制客户端改时间(其实也可以改注册表但太麻烦)
    最好全部以服务器时间为准

      

  6.   

    时间本地,和服务器都在取,主要看情况,程序运算时,取本地,存储过程运算时,就取服务器上的。
    用的都时delphi的控件,并且计算房费没有时间控件。
      

  7.   

    或者在启动程序的时候记录时间starttime
    然后每分钟把这个时间starttime加一分钟
    同时判断,系统时间和这个时间是否相等
    不相等,就改系统时间
      

  8.   

    操作系统时间绝对没错,Cmos时间也没错。怪就怪在这些地方。
      

  9.   

    救救我吧?
    [email protected]
    qq:157123678