用delphi批量导入某子目录下所有JPG图片文件到数据库

王朝delphi·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

//保存图片到数据库

function imagesavetosql(dataset:TQuery;filename:String):boolean;

var

imagejpg:TJPEGImage; //jpg图片

MyStm:TMemoryStream;

begin

result:=false;

MyStm:=TMemoryStream.Create;

imagejpg:=Tjpegimage.Create;

if filename<>'' then

begin

imagejpg.LoadFromFile(filename);

imagejpg.SaveToStream(MyStm);

MyStm.Position:=0;

TBlobField(dataset.FieldByName('pict')).LoadFromStream(MyStm); //不可与DMImage之类控件,因为其只支持BMP

result:=true;

end;

MyStm.Free;

imagejpg.free;

end;

//界面上添加TDirectoryListBox,TGauge控件

procedure Tfrmpict.BitBtn2Click(Sender: TObject);

var

dirlist:TStringList;

i:Integer;

begin

inherited;

if chk_road.Checked then

begin

dirlist:=TStringList.Create ;

dirlist.Clear;

try

GetAllFileName(DirectoryListBox1.Directory,dirlist);

if dirlist.Count>0 then

begin

Gauge1.MinValue :=0;

Gauge1.MaxValue:= dirlist.Count-1;

for i:=0 to dirlist.Count-1 do

begin

with dm.qry_pict do

begin

Insert;

Fields[0].AsString:=copy(dirlist.Strings[i],1,pos('.',dirlist.Strings[i])-1);

if imagesavetosql(dm.qry_pict,dirlist.Strings[i] )=false then

begin

ShowMessage('导入'+dirlist.Strings[i]+'.jpg图片时出错');

Abort;

end;

Post;

end; //with

Gauge1.AddProgress(1);

end; //for

end //if

else

ShowMessage('该目录下不存在JPG类型图片');

finally

dirlist.Free;

end;

end

else

ShowMessage('请执行路径选取操作');

//Close;

end;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航