这两天看到你在论坛里不停的问这个问题,我都替你着急了,我帮你搞定了。这里说我的方法:
-------------------------------------------------------------
我用了两个ADOQuery(当然你也可以只用一个,我这里是为了更清楚的说明你的问题),其中ADOQuery1连本地数据库中的表bookinfo,表里是下面的记录,是savetofile生成的test.xml中的。
<z:row bookname="Delphi5" author="王华" price="57" /> 
  <z:row bookname="vb" author="梁刚" price="38.6" /> 
ADOQuery2用来loadformfile('test.xml'),另外有两个datasource和dbgrid分别用来对应两个ADOQuery,dbgrid用来看效果,这我就不细说了。
下面是代码:
--------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
begin
  try
  ADOQuery1.SaveToFile('test.xml');//这个你应该知道的哈:)
  Application.MessageBox('OK!','提示',MB_ICONINFORMATION + MB_OK);
  except
  end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
  try
  ADOQuery2.LoadFromFile('test.xml');//先LOAD进来
  ADOQuery2.Active := true;//一定要TRUE
  ADOQuery2.Filtered := false;
  ADOQuery2.Filter := 'bookname = ' + QuotedStr('vb');//这里最关键,是你要过滤的记录,我这里的意思是只在DBGRID中显示bookname等于vb的字段,你可以在这里改成你需要的,其中QuotedStr函数一定不能少,它的意思你看帮助就可以了。
  ADOQuery2.Filtered := true;
  Application.MessageBox('OK!','提示',MB_ICONINFORMATION + MB_OK);
  except
  Application.MessageBox('load from xml faile!','错误',MB_ICONERROR + MB_OK);
  end;
  DBGrid2.DataSource := DataSource2;
  DataSource2.DataSet := ADOQuery2;
end;
有什么问题再跟我联系:[email protected]