WEB开发网
开发学院软件开发Delphi 用delphi批量导入某子目录下所有JPG图片文件到数据... 阅读

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

 2006-02-04 13:55:03 来源:WEB开发网   
核心提示: //保存图片到数据库function imagesavetosql(dataset:TQuery;filename:String):boolean;var imagejpg:TJPEGImage; //jpg图片 MyStm:TMemoryStream;begin result:=false; MyStm:=
 

//保存图片到数据库
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;


Tags:delphi 批量 导入

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接