SQL Server 2005里的Image处理

转载 2011年08月22日 21:42:05
 

SQL Server 2005里的Image字段装的就是文本类型数据; 

 

 

delphi上传图片--个人照片

 

1. 使用到的控件:

    (1) Image 控件(TImage类的);

    (2) OpenPictureDialog控件(打开图片的控件);

 

2. 使用到一个类:TMemoryStream

 

3. 数据库的字段:Blob字段;存放图像的二进制;

 

 

功能一: 清除照片

 

步骤:

 Image1.Picture.Graphic := nil ;
    Image1.Tag := 1 ;

使用如下语句即可;

 

 

 

功能二: 添加照片

 

步骤:

1. 打开硬盘,选择照片时,用以下过程:


procedure TRYGLEditForm.image1DblClick(Sender: TObject);
var
  filestream:TFileStream;
begin
  inherited;
  if not (dsMaster.State in [dsEdit , dsInsert]) then
     exit ;

    if dlgOpenPic1.Execute then
    begin
      try
        filestream := TFileStream.Create(dlgOpenPic1.FileName,fmOpenRead);
        if filestream.Size > 20000 then
        begin
          MsgDialog.ShowError('图片太大影响速度,不能超过20K大小');
          abort;
        end;
      finally
        filestream.free;
      end;
      Image1.Picture.LoadFromFile(dlgOpenPic1.FileName);
      Image1.Tag := 1 ;
    end;
end;

 

 

2. 保存到数据库时:

 


 {--cyj 保存图片--}
procedure TRYGLEditForm.SavePicture;
 var
  PicName , ext  : string ;
  strm : TMemoryStream;
begin
     try
       if Image1.Picture.Graphic = nil then exit;


        strm := TMemoryStream.Create ;
        Image1.Picture.Graphic.SaveToStream(Strm);
        strm.Position := 0 ;

        if strm.Size = 0 then
           cdsPHOTO.FieldByName('photo').Clear
        else
        begin
           With cdsPHOTO do
           begin
             if recordcount > 0 then
               Edit
             else
               Append;
             TBlobField(FieldByName('PHOTO')).LoadFromStream(strm);
             Post;
             ApplyUpdates;
           end;
        end;
    finally
        strm.Free ;
    end;
end ;

 

 

 

//--读取图片到Image控件, 在formshow事件里调用ShowPhoto()即可


{--显示个人照片 支持bmp jpg格式--}                  
procedure TFmEmployeeInput.ShowPhoto();
var
  //strm: TADOBlobStream;
  strm: TClientBlobStream; //--因为用的是ClientDataSet组件作为数据读取控件    
  JpegImage: TJpegImage;
  Bitmap: TBitmap;
  PType: Integer;
begin
  PType := 0;

  if FMEmployee.CDS1.FieldByName('photo').AsString = '' then
  begin
     Exit;
  end;


  strm := TClientBlobStream.Create(tblobfield(FMEmployee.CDS1.FieldByName('photo')),bmread);
  try //try1
    strm.position :=0;
    image1.Picture.Graphic := nil; //清除图像
    // BMP、JPEG两种图像数据必需分别处理
   if PType = 1   then //BMP型图像数据
   begin //begin11
     bitmap := tbitmap.Create ;
   try //try11
     bitmap.LoadFromStream(strm);
     image1.Picture.Graphic := bitmap;
   finally
     bitmap.Free;
   end; //end try11
  end //end begin11
  else
   if PType = 0 then //JPEG型图像数据
   begin //begin12
     jpegimage := tjpegimage.Create ;
  try //try12
    jpegimage.LoadFromStream(strm);
    image1.Picture.Graphic := jpegimage;
  finally
    jpegimage.Free ;
  end; //end try12
  end; //end begin12
  finally
    strm.Free ;
  end; //end try1
end;

C#操作SQL Server中的Image类型数据

该例子是一个对SQL Server数据类型的一个操作例子,具有写入、读取功能。1:准备数据库1)创建数据库 Test2)创建表 Table_1 (分别有2个字段:id(Int)、photo(Image...

SQL Server中的Image数据类型的操作

SQL Server中的Image数据类型的操作 准备工作,在库Im_Test中建立一张表Im_Info,此表中有两个字段,分别为Pr_Id (INT),Pr_Info (IMAGE),用来...

SQL Server中的Image数据类型的操作

SQL Server中的Image数据类型的操作 SQL Server中的Image数据类型的操作

C#操作SQL Server中的Image类型数据

该例子是一个对SQL Server数据类型的一个操作例子,具有写入、读取功能。 1:准备数据库 1)创建数据库 Test 2)创建表 Table_1 (分别有2个字段:id(Int)、p...

SQL Server2000安装故障处理

  • 2013年10月06日 10:23
  • 5KB
  • 下载

SQL Server 2017 图形处理数据库

SQL SERVER 2017 提供了图形数据库功能(实际是在表级别提供),图形数据库集成到关系型数据库中,便于关系型数据库使用SQL操作。图形数据库属于NOSQL类型,如Neo4j 等。...

SQL Server字符串处理函数大全

  • 2014年07月09日 18:02
  • 37KB
  • 下载

SQL Server 去重处理

CREATE PROCEDURE pAppRepair AS BEGIN Set NOCOUNT ON; --不返回计数,提高处理速度 Set XACT_ABORT ON; --如果...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL Server 2005里的Image处理
举报原因:
原因补充:

(最多只允许输入30个字)