我想将二进制 也就是流 放入MSSQL数据库 不知道怎么实现.
哪位大虾帮下忙.说下方法.或者示范代码

解决方案 »

  1.   

    首先先要用上流(Stream)程序如下:procedure  TForm1.DBGrid1DblClick(Sender: TObject);          //双击DBGrid栏显示图片
    Var
    Ms:TStringStream;
    Jpg:TJpegImage;
    begin                                            
      Ms:=TstringStream.Create(');
      Jpg:=TJpegImage.Create;
      TBlobField(ADOTable1.FieldByName('zp')).SaveToStream(Ms);
      Jpg.LoadFromStream(Ms);
      Ms.Position :=0;
      Jpg.LoadFromStream(Ms);
    // Form2.Image1.Picture.Bitmap.LoadFromStream(Ms);    //调用bmp图像的方法
      Form2.Image1.Picture.Assign(Jpg);                     
      Form2.Show;
      form2.Position :=poScreenCenter;
    end;{如果JpegImage是从一个文件中load的话(loadfromstream),图像就可以正常显示而从数据库字段中读到流里,JpegImage再从这个流里load,就不行,会出现错误JPEG error #41。}procedure  TForm1.Button2Click(Sender: TObject);             //保存
    Var
    Msmem:TmemoryStream;
    Jpg:TJpegImage;
    begin                                     
      msmem:=TmemoryStream.Create;
      Jpg:=TjpegImage.Create;
      Jpg.Assign(form2.Image1.Picture.Graphic);
      Jpg.SaveToStream(Msmem) ;            
    //  form2.Image1.Picture.Bitmap.SaveToStream(Msmem);        // 保存bmp图像的方法
      Msmem.Position :=0;
      ADOTable1.Edit ;
      TBlobField(ADOTable1.FieldByName('zp')).LoadFromStream(Msmem);
      ADOTable1.Post; 
      Msmem.Free ;
      Jpg.Free;
    end;
      

  2.   

    不怎么正规?
    不用流和BLOB,你想用什么?
      

  3.   

    insert into table1 (字段)
    select 100//二进制和十进制是通的,可以直接传入的
      

  4.   

    不是.
    我是说用流啊
    但是我在数据库里面建立一个二进制字段.然后用delphi加入就报错了
    用图片格式的就可以...