使用流和DBIMAGE将图存入数据库时提示‘invalid blob length',图象并不大,SQL-SERVER的IMAGE型字段,如何解决,请帮助,谢谢!

解决方案 »

  1.   

    FieldByName('Photo').Assign(photo.Picture.Bitmap);这只有bmp格式才可以
      

  2.   

    var
      PicStream:TMemorystream;
      PicStream := TMemorystream.Create();
      Self.Image1.Picture.Bitmap.SaveToStream(PicStream);
      PicStream.Position := 0;然后在这里存如数据库
      

  3.   

    我是这样作的:就是不行
    var
      Dlg: TOpenDialog;
      Stream: TMemoryStream;
    begin
      Dlg := TOpenDialog.Create(Self);
      Dlg.Title := '请选择文件!';
      if Dlg.Execute then
      begin
        Stream := TMemoryStream.Create();
        Stream.LoadFromFile(Dlg.FileName);
        table1.Append;
        Stream.Position := 0;    TBlobField(table1.FieldByName('c_bmp')).LoadFromStream(Stream);
        table1.Post;
        Stream.Free;
        Dlg.Free;
        ShowMessage('文件保存到数据库操作完毕!');
      end;
      

  4.   

    使用BDE连接的数据库就是不行,你用ADO一定行的。
    我那天也是这个错误,上网找了一天,就是不行,因为我是使用BDE连接SQL SERVER的
      

  5.   

    bde的参数BLOB SIZE改成大值就OK了