procedure TStockForm.FormCreate(Sender: TObject);
var
  InfoDataSet: DataSet;
  Stock: StockOB;
begin
  if not Assigned(InfoDataSet) then
    InfoDataSet:= TDataSet.Create(Self);
  if not Assigned(Stock) then
    Stock:= StockOB.Create;
  InfoDataSet.Assign(Stock.ShowCardInfo);
end;Stock.ShowCardInfo返回的是一个有记录的TDataSet;
运行InfoDataSet.Assign(Stock.ShowCardInfo)时报错了,请问是怎么回事?是否我
这样复制记录对象是错误的

解决方案 »

  1.   

    用InfoDataSet:=Stock.ShowCardInfo这样行吗
      

  2.   

    flylin(飞天)
    用InfoDataSet:=Stock.ShowCardInfo这样行吗;这就不是复制DataSet,只是把Stock指向了Stock.ShowCardInfo返回的那个DataSet,Delphi是基于对象指针操作的,因为Stock.ShowCardInfo返回的那个DataSet是我的数据模块里面的一个
    TADOQuery,但是这个TADOQuery我还要用它做很多事,我的数据模块里面的所以数据操作都用它
    来完成,所以前台的TDataSource我不想和数据模块的TADOQuery绑定,所以用了一个临时对象
    InfoDataSet想把TADOQuery的记录都复制过来给前台的TDataSource,这样TADOQuery就又可以
    去做其他的事了.