现在有这样一个需求   我从xml中读取数据 保存到数据库中   
数据库中什么值也没有  代码如下  
ADOQuery1.Close;
  ADOQuery1.LoadFromFile('E:\1.adq');
  ADOQuery1.Open;
  adotable1.Clone(adoquery1);
//这里tablename是有值得  并且是数据库对应得表   ADOConnection 也是设置好了的  
  showmessage(adotable1.tablename);
adotable1.UpdateBatch(arall);这里是克隆好了得 但是   数据库中却没有任何值 
这是为什么???

解决方案 »

  1.   

    给你一段代码参考:
    uses
      ADOInt;function GetAdoChangeCount(DataSet:TCustomADODataSet):Integer;
    var
      r:_RecordSet;
    begin
      Result:=0;
      if DataSet.Active then
      try
        r:=DataSet.Recordset.Clone(adLockBatchOptimistic);
        r.Filter:=adFilterPendingRecords;
        Result:=r.RecordCount;
      except
      end;
    end;
      

  2.   

    查這個XML對應表   'E:\1.adq'
      

  3.   


     我的意思是 1.adq  裏面有一個傳入表的,也就是這個XML裏面的數據的源表,與你的 AdoTable  的相同嗎
      

  4.   

     1.adq   是个xml格式得文件  
    里面得值是通过程序读出excel中的数据的  
    有个奇怪得现象   
    excel中我弄的是字段名是 a  b  c   d 1.adq 中出现了 这样的东西   a  b  F3 c F4 d然后我就把表中字段也改成了    a  b  F3 c F4 d但是还是不行  
      

  5.   


    一時估計你也不太理解了。你這樣吧,先用一個ADOQUERY 載入 1.adq  後,然後將這個數據集裏的數據,循環導到你的目的表adoquery2.close;
    adoquery2.sql.text := 'select * from '+  adotable1.tablename;
    adoquery2.open;adoquery1.loadfromFile('E:\1.adq');with adoquery1 do while not eof do begin
      adoquery2.append;
      adoquery2.fieldbyname('字段名').Value := fieldbyname('字段名').Value;
      .......................
      next;
    end;