我想在数据库中sql sever 2000 中的一个表man(name,id,photo)其中photo是image 类型,我想往表中加入一个图片,可经是bmp 与jpeg类型,请问代码应该是如何啊?以及要用到什么控件啊?同时我想把它读出来在表中控件image 中显示,代码又是如何啊?希望各位高手可以帮小弟一把

解决方案 »

  1.   

    我找的一些代码procedure TForm1.Button1Click(Sender: TObject);
    begin
      adotable1.Append ;
    end;procedure TForm1.Button3Click(Sender: TObject);
    begin
      opd1.Execute ;
      if opd1.FileName <> '' then
      begin
      form2.Image1.Picture.LoadFromFile(opd1.FileName);
      form2.show;
      end;
    end;procedure TForm1.DBGrid1DblClick(Sender: TObject);
    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);               {如果JpegImage是从一个文件中load的话(loadfromstream),图像就可以正常显示,
                                                      而从数据库字段中读到流里,JpegImage再从这个流里load,就不行,
                                                      会出现错误JPEG error #41。}
      Form2.Show;
      form2.Position :=poScreenCenter;end;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) ;            // 1
    //  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;procedure TForm1.FormCreate(Sender: TObject);
    begin
      adoconnection1.Connected :=true;
      adotable1.Active :=true;
    end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
      adoconnection1.Connected :=false;
    end;