程序:
procedure TForm1.Button2Click(Sender: TObject);
var
  sFileName:string;
  bs:TADOBlobStream;
begin
  bs:=TADOBlobStream.Create(TBLOBField(ADODataSet1.FieldByName('BLOB')),bmRead);
  try
    sFileName:=ExtractFilePath(Application.ExeName)+'tmpBlob';
   sFileName:=sFileName+'.'+ADODataSet1.fieldbyName                                  ('Extention').AsString;
    bs.SaveToFile(sFileName);
    OleContainer1.CreateObjectFromFile(sFileName,False); //*********
  finally
    bs.Free;
  end;
end;请问为何在运行时出错:对象未初始化,指//*********这一行?请高手执教!!

解决方案 »

  1.   

    sFileName:string;声明为TMemoryStream试试.
    SaveToStream;
    ReadBuffer;
      

  2.   

    ADODataSet1.FieldByName('BLOB')) 里面的存的是什么,怎么存的?OleContainer1.LoadFromFile 试试
      

  3.   

    CreateObjectFromFile是要根据相应的文件后缀名,自动创建相应的对象.
    比如:CreateObjectFromFile("aaa.bbb",false)肯定出错,因为找不到对应.bbb文件的对象.
    如果你的机器没有安装Word,却CreateObjectFromFile('a.doc',false)就会出错.
      

  4.   

    我加载的是一个影像文件,mpg格式的,我试过,不行,总是提示对象未初始化?