问题是这样的,小弟在自己本机电脑上用几十个数据测试,一切正常。应用程序可以从SQL服务器上下载签到数据,保存到access数据表SignTimeTemp中,数目一致。但是改用网络传输大批量数据,会产生数据丢失的情况。几百个数据会丢失几十个,SQL上1631个记录,只下载了1276个。我尝试过好几种方法,还是不能解决问题。
真是不知道是什么原因? 请教各位大侠了    if ADSignedUser.RecordCount <> 0 then// SignedUser是SQL Server上存储签到数据的表
    begin
    //下载人员签到资料信息到应用程序Data中中表SignTimeTemp
      ADSignedUser.First;
      Repeat
       //Screen.Cursor := crHourGlass;
      //不重复添加记录
      Rdatetime := ADSignedUser.FieldByName('datetime').Value;
      if ADSignTimeTemp.Locate('datetime',Rdatetime,[])= false then
         ADSignTimeTemp.AppendRecord([ADSignedUser.FieldByName('datetime').Value,
                                      ADSignedUser.FieldByName('cardnum').Value,
                                      ADSignedUser.FieldByName('name').Value
                                     ]);
        ADSignedUser.Next;
      Until ADSignedUser.Eof;
      if ADSignTimeTemp.Modified then ADSignTimeTemp.Post;
    end;

解决方案 »

  1.   

    if ADSignTimeTemp.Locate('datetime',Rdatetime,[])= false then
      

  2.   


    http://topic.csdn.net/u/20120224/11/57bcb284-951b-4ea2-8437-df27670f567c.html?53150
      

  3.   

    先把ADSignedUser数据显示出来 看数据全不全先
    再自己找原先
    先确保 ADSignedUser 数据正确
      

  4.   

    回复 mhhaifeng
    SQL服务器上的数据,是正确的。
    上午已查明原因,是因为SQL服务器上存在不少相同的Rdatetime,而我在用if语句过滤掉了,所以才会造成数据丢失。