procedure TForm1.AddTButtonClick(Sender: TObject);
var
  ST:TStream;
  fn: string;
  Date:TDateTime;
  ID:  Longint;
  Node:TTreeNode;
begin
  Date:=now;
  ID:=StrToInt(format('%10.0f',[50000*Date]));
  if OpenDialog1.Execute then
  begin //打开文件
    fn := ExtractFileName(OpenDialog1.FileName);
    with IBTable1 do
    begin
      Open;
      if State <>dsEdit then Edit;
      Append;
      FieldByName('Code').AsInteger:=ID;
      FieldByName('FType').AsString:=TreeView1.Selected.Text;
      FieldByName('FName').AsString:=fn;
      ST:=CreateBlobStream(FieldByName('Detail'),bmWrite);
      OleContainer1.CreateObjectFromFile(OpenDialog1.FileName, False); //创建OLE对象
      OleContainer1.SaveToStream(ST);  //将OLE数据存入数据库
      ST.Free;
      Post;
    end;
    Node:=TreeView1.Items.AddChild(TreeView1.Selected,fn);
    Node.ImageIndex:=6;
    Node.SelectedIndex:=6;
  end;
  AddTButton.Enabled:=false;
end;有些错误可以说莫名其妙。比如:以上程序存储doc、txt、bmp文件都很顺利,可是存储mp3文件时却“应用程序已启动,但未注册类别工厂。”然后高亮指向“ OleContainer1.SaveToStream(ST);  //将OLE数据存入数据库
这一句。   
期待解答。