还有一个问题就是我定义了一组数组,让后定义了一个定时器,每隔一段时间就会对这个数组的数据进行更新,每次更新之后就会发送一个更新数据的消息来调用函数将更新之后的数据存储到数据库中,这样不停的循环下去,出现的问题是有的应该在前面插入到数据库中的数据却在插入到后面去了,不知道为什么,因为我每次插入时都会将当时的系统时间(精确到毫秒)作为数据的一部分存到数据库,所以知道数据存储的顺序是不对的。
请各位帮助,谢谢!!!

解决方案 »

  1.   

    nelsonc(软件兔) 说的是正解
      

  2.   

    我不是指在数据库中的顺序,比方说我对数据的更新是定时给变量a加1 ,a初始化为0,每次更新的时候我就把更新的值和当前系统的时间(精确到毫秒)存储到数据库中,数据库就会出现如下数据
            time                 value
    2005-08-18 16:56:23.367        0
    2005-08-18 16:56:23.108        1
    2005-08-18 16:56:23.612        2
    本来0是在1之前插入到数据库中的,但现在从显示来看插入1时的时间比0还早
      

  3.   

    时间不对的问题:
    你是不是用ADO的recordset::insert 方法来插入?
    不试试用command::execute方法来更新看会不会有这种问题,可能是ADO的缓存原因。
      

  4.   

    会不会是毫秒的错误;
    你给数据库赋时间值是那种类型.它支不支持毫秒?
    ADO好象不支持OLEDB的DATETIMESTAMP.
      

  5.   

    问题简单的说就是插入数据0和当时的时间time0  和 插入数据1和当时的时间time1
    按照我插入的顺序是 time0<time1(也就是插入数据0在先)
    但是数据显示的结果是time0>time1(也就是插入数据1在线)
    但我明明是先插入数据0的
      

  6.   

    我是在调用ado的execute之前就把当时的系统时间取出来了   执行execute时相当于把时间作为了一部分数据
    就算ado的缓存原因  那我的时间数据不会变啊
      

  7.   

    如果只是INSERT的话,你能不能设time字段的默认值为(GetDate())
    然后INSERT时忽略该字段来测试下呢.如果还不行那肯定是ADO提交数据的问题了.
    那就再加单独的毫秒字段.用time + misl组成双关键字.
    将time 的misl设为0
      

  8.   

    我现在想到的唯一的原因就是读取毫秒有问题   我用的是GetLocalTime()这样的函数来取的 
    但是我的大多数的数据有是对的 
    我才用的是定时器来更新数据   根新数据的越快(也就需要存储数据越快)出错的数量相对而言就会变多
    一直搞不清楚具体是什么原因,所以才发帖子问问大家,请大家帮忙!!!
      

  9.   

    你是用ADO.ADO的字段值用的VARIANT类型,
    VARIANT类型的时间变量是DATE类型,这个类型是没有毫秒值的,在数据库中应该会是0~1000的随机值
      

  10.   

    谢谢 草上飞   我把那个数据的默认值设为GetDate()就好了 
    你qq号是多少啊  有问题再请教你帮忙