TClientDataSet - SaveToStream抛出访问冲突

时间:2009-08-07 10:36:23

标签: delphi stream

我在使用ClientDataSet保存数据时遇到问题。

我将数据放入ClientDataSet并尝试:

...
var
strmBENU: TMemoryStream;


implementation    
...

TForm1.Button1Click(Sender: TObject);
begin
  ClientDataSet1.SaveToStream(strmBENU);
end;

...

单击Button1,这是我得到的:

模块“Project2.exe”中地址0049CEB2处的访问冲突。读地址00000000。

我做错了什么?

2 个答案:

答案 0 :(得分:3)

可能没有创建流。试试这个:

TForm1.Button1Click(Sender: TObject);
var
  strmBENU: TMemoryStream;
begin
  strmBENU := TMemoryStream.Create;
  try
    ClientDataSet1.SaveToStream(strmBENU);
    // do stuff with stream
  finally
    strmBENU.Free;
  end;
end;

答案 1 :(得分:2)

看起来像一个NULL引用。您是否已实例化strmBENU