读书人

Delphi将图片保存至Sql Server中的小疑

发布时间: 2012-02-25 10:01:47 作者: rapoo

Delphi将图片保存至Sql Server中的小问题?
怎么限制保存图片的大小呢?比如说超过500K的图片就不允许提交。否则数据库太大了,读取也慢。保存图片代码如下,怎么改一下?:
//保存图片
procedure TForm1.btn1Click(Sender: TObject);
begin
if dlgOpen1.Execute then
img1.Picture.LoadFromFile(dlgOpen1.FileName);
qry1.Append;
qry1.Post;
end;
//提前之前将图片转换为数据流
procedure TForm1.qry1BeforePost(DataSet: TDataSet);
var
ms: TMemoryStream;
jpg: TJpegImage;
begin
ms := TMemoryStream.Create;
jpg := TJpegImage.Create;
try
if img1.Picture.Graphic<>nil then
begin
try
img1.Picture.Graphic.SaveToStream(ms);
finally
TBlobField(qry1.FieldByName('pic')).LoadFromStream(ms);
end;
end;
finally
jpg.Free;
ms.Free;
end;
end;

[解决办法]
if ms.Size > 500k then
弹一个提示框
[解决办法]
简单点改

Delphi(Pascal) code
procedure TForm1.qry1BeforePost(DataSet: TDataSet);var  ms: TMemoryStream;  jpg: TJpegImage;begin  ms := TMemoryStream.Create;  jpg := TJpegImage.Create;  try    if img1.Picture.Graphic <>nil then      begin        try          img1.Picture.Graphic.SaveToStream(ms);//add                    if ms.size>1024*500 then          begin            //do something          end          else            //save to database//add        finally          TBlobField(qry1.FieldByName('pic')).LoadFromStream(ms);        end;      end;  finally    jpg.Free;    ms.Free;  end;end; 

读书人网 >.NET

热点推荐