怎样将一个数据库中的一个表放入指定的内存里。
然后用新数据与它作比较(也在内存中执行)。有重复的DELETE。
最后将数据放会数据库中?
怎样实现以上动作?
最好有原代码!
我用DHLPHI 7,与ACCESS

解决方案 »

  1.   

    为什么要指定内存位置呢,用ADO就可以嘛,他会自动把数据装进内存的,然后作别的操作也没有问题
      

  2.   

    用ClientDataSet+Dataprovider就可, 數據也是緩衝中內存中的, 操作完再ApplyUpdate就可!
      

  3.   

    aiirii(ari) :
    可以详细点吗?
    可以帮忙的话,我会再加100分
      

  4.   

    声明:
    将数据字段定义成记录的字段
    type  
      DatabaseTmp=Record
        Field1:string;
        Field2:string;
        Field3:string;
          .
          .
          .
        最后一个字段:string;
      end;Procedure LoadData(atable:Ttable);
    Var
      I:integer;
      adatabase:array of DatabaseTmp;
    begin
      with atable do
      begin
        if not active then open;
        Setlength(adatabase,RecordCount);
        For I:=0 to RecordCount-1 do
        with Adatabase[I] do
        begin
          Field1:=Fieldbyname('字段1').asstring;
          Field2:=Fieldbyname('字段2').asstring;
          //如上操作将数据表加载到内存;
        end;
      end;
    end;
      

  5.   

    少一条
      Next;//移动数库记录
      

  6.   

    用 ADO 的缓冲更新即可with ADOQuery1 do
    begin
      CursorLocation := clUseClient;
      CursorType := ctStatic;
      LockType := ltBatchOptimistic;
      SQL.Text:='.....';
      Open;
      First;
      while not Eof do
        if FieldValues['afield']=xxxx then
          Delete
        else
          Next;
      end;
      UpdateBatch;
    end;
      

  7.   

    saien,同意
    我也一般用紀錄和動態數組處理這個問題
      

  8.   

    saien, hiflower:
      你们的代码我都试过了,而且都做的时间的测试,
    在没有用你们的代码是,平均时间(三次)是42.05秒。
    用你们的代码,平均时间是35.7秒。
    这样的时间是不能接受的。但还是谢谢你们!
      

  9.   

    给以EMail给我吗?
    [email protected]
    因为我上不了QQ