+ -
当前位置:首页 → 问答吧 → 将AdoDataSet的数据集传到ClientDataSet后遇到的问题……请大家帮忙解惑

将AdoDataSet的数据集传到ClientDataSet后遇到的问题……请大家帮忙解惑

时间:2011-11-22

来源:互联网

AdoDataSet连接到本地的Access,按条件获得几条数据。
然后我使用 http://topic.csdn.net/t/20050407/13/3916666.html# 中3楼pazee的方法 将这几条数据传给了ClientDataSet
Delphi(Pascal) code

  dstRegistration.DisableControls;

  try 
    dmData := TdmData.Create(nil);

    dmData.cdsRegistration.Active := True;

    dmData.cdsRegistration.Data := dspRegistration.Data;

    dmData.cdsRegistration.Insert; 

    dmData.cdsRegistration.Post;

    if (dmData.cdsRegistration.ChangeCount > 0) then
      dmData.cdsRegistration.ApplyUpdates(-1);

    dmData.cdsRegistration.Active := False;
    
  finally

    dstRegistration.EnableControls;

    dmData.Free;
    
  end;



去数据库查询,数据没有被插入……这是为什么呢?

作者: tohaerok   发布时间: 2011-11-22

不知道你是怎么设置的.可以这样试试,使用ADOQuery查询,提供数据

ADOQuery.Connection=ADOConnection;
DataSetProvider.DataSet:=ADODataSet;
ClientDataSet.ProviderName=DataSetProvider;

with ADOQuery do
begin
  Close;
  SQL.Clear;
  SQL.ADD('Select * From t');
  Open;
end;
这样ClientDataSet就有数据了

而数据操作,就操作ClientDataSet即可,如:ClientDataSet.Append;Edit;Post;Cancel;...等等

提交到数据库:
if ClientDataSet.State In [dsEdit,dsInsert] then
  ClientDataSet.Post;
if ClientDataSet.ChangeCount>0 then
  ClientDataSet.ApplyUpdates(-1);

作者: kaikai_kk   发布时间: 2011-11-23

引用 1 楼 kaikai_kk 的回复:
不知道你是怎么设置的.可以这样试试,使用ADOQuery查询,提供数据

ADOQuery.Connection=ADOConnection;
DataSetProvider.DataSet:=ADODataSet;这个改成ADOQuery
ClientDataSet.ProviderName=DataSetProvider;

with ADOQuery do
begin
  Close;
  SQL……

作者: kaikai_kk   发布时间: 2011-11-23