我用ADOQuery.Savefile把查询数据导为一个外部文件,然后操作数据(其中有删除),最后再把外部的数据用LoadFromFile导进来,但是如何更新到数据库?

解决方案 »

  1.   

    post应不行
    我是从数据集中一条一条的拼sql语句,然后一条一和的insert
      

  2.   

    似的.我原来就是用清空数据表,然后循环Insert的.我想着有或许ADO有什么方法的可以利用.
    TO;: lyyxzq(李位) 
        请是否可以说具体点
    TO:   yzykjh(多米诺骨牌)
        不明白,能说清楚点.
      

  3.   

    不知道你问得是不是这个意思!
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        ADOConnection1: TADOConnection;
        Button2: TButton;
        ADOQuery1: TADOQuery;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}
    uses comobj;
    var
      cn ,rs,rs1 : Variant;
      List : TStringList;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      p,i,idx :Integer;
    begin
      cn := CreateOleObject('adodb.connection');  rs := CreateOleObject('adodb.recordset');  rs1 := CreateOleObject('adodb.recordset');
      cn.Open(adoConnection1.ConnectionString);
      rs1.Open('select * from test',cn);
      List := TStringList.Create;
      while not rs1.Eof do
      begin
        List.Add(rs1.Fields[0].Value);
        rs1.MoveNext;
      end;
      rs1.Close;  rs.Open('c:\test.xml');
      rs1.Pagesize := 1;
      rs1.Open('SELECT * FROM TEST',CN,3,2);
      p := 0;
      while not rs.Eof do
      begin
        idx := List.IndexOf(rs.Fields[0].Value);
        if idx = -1 then
          rs1.Addnew
        else
          rs1.absolutePage := idx+1;
        for i := 1 to rs.Fields.Count - 1 do
          rs1.Fields[i].Value := rs.Fields[i].Value;
        rs1.Update;
        rs.MoveNext;
        Inc(p);
        Button2.Caption := IntToStr(p);
        button2.Update;
      end;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      ADOQuery1.SaveToFile('c:\test.xml');
    end;
      

  4.   

    你好:zhenpengka(小鸟笨笨) ;
     这也是通过检查,然后没有的加进去.我只是问是否ADOQuery是否有什么方法或事件能直接全部更新到数据库里面自动覆盖重复的记录.