我要写入一个BLOB字段,程序如下,但是POST后并没有存到数据库里。我得后台用的是DB2。大家帮我看看,谢谢!!!!!!
procedure save;
var
  sFileName : String;
  function BlobContentToString(const FileName: string): string;
  begin
    with TFileStream.create(FileName, fmOpenRead) do
    try
      SetLength(Result, Size);
      Read(Pointer(Result)^, Size);
    finally
      Free ;
    end ;
  end ;
begin
  if (OpenDialog1.Execute) then
  begin
    sFileName := OpenDialog1.FileName;
    adodsBlobs.Edit ;
    adodsBlobs.FieldByName('Blobs').AsString :=BlobContentToString(sFileName) ;
    adodsBlobs.Post;
  end ;
end;

解决方案 »

  1.   

    post后只是改变内存中的数据,数据库的内容并不改变,post后再update一下
      

  2.   

    还是不行,报一个“CLI0100E 参数数目错误。”我用DB2后台的。为什么呢…………郁闷…………………………
      

  3.   

    看看你的BlobContentToString有没有返回内容呀或者看看你的字段够不够大
      

  4.   

    var
     MS: TMemoryStream;
    begin
     MS:=TMemoryStream.create;
     Image1.Picture.Bitmap.SaveToStream(MS);
     MS.Position:=0;
     Table1.Append; 
     //在数据库中添加一条记录
     TBlobField(Table1.FieldbyName(’image’)).LoadFromStream(MS);
     Table1.Post; 
     //将所作的更新写入数据库
    end;
      

  5.   

    newsofter(横空出世小霸王) 的方法比较好
    可以存取很大的流