var
  MyBlob: TStream;
  Myfs:TFileStream;
begin
  path:='D:\ICON\exit.bmp';
  Table1.Active:=true;
  table1.Last;
  table1.Insert;
  try
  begin
    MyBlob:=table1.CreateBlobStream(table1.FieldByName('photo'),bmReadWrite);
    MyBlob.Seek(0, soFromBeginning);
    Myfs:= TFileStream.Create(path, fmOpenRead);
    try
    begin
      MyBlob.CopyFrom(Myfs, Myfs.Size);
    end;
    finally
      Myfs.Free
    end;//try
  end;
  finally
    MyBlob.Free
  end;  //try
  table1.Post;//当图片大于100K时报错 Ivalide Blob Length不知哪里有错请指教.我用的数据库是SQL SERVER 2000
end;

解决方案 »

  1.   

    procedure Tfilemain.BitBtn6Click(Sender: TObject);
    var
      tempjpg:tjpegimage;
      pic:TMemoryStream;
    begin  tempjpg:=tjpegimage.Create;
      tempjpg.LoadFromFile(imagepath);
      pic:=TMemoryStream.Create;
      tempjpg.SaveToStream(pic);
      pic.Position:=0;
      if adotable1.Active=false then adotable1.Open;
      adotable1.append;
      adotable1.edit;
      TBlobField(adotable1.FieldByName('zwpic')).LoadFromStream(pic);
      adotable1.FieldByName('dah').Value:=dnum;
      adotable1.post;
      pic.Free;
      tempjpg.free;
      yscontrol(sender);
    end;