给朋友做了一个根据图片名导入图片工具,出现问题,急急,在线等(20)

  • 主题发起人 主题发起人 andywos
  • 开始时间 开始时间
A

andywos

Unregistered / Unconfirmed
GUEST, unregistred user!
给朋友做了一个根据图片名导入图片工具,出现问题,急急,在线等每次运行你选了5000个图片,只能导入1900多个文件成功,文件名与对应的记录没错。不知是哪有限制,谢谢高手指点一下。每次只导1000个图片正常试着把STR2 改居ANSISTRING也是一样;procedure TForm1.ToolButton1Click(Sender: TObject);var picstream:tadoblobstream; i:integer; str2:String; j,count1:integer; begin if OpenDialog1.Execute then begin listbox1.Items.Clear; count1:=0; // path:=opendialog1.FileName; for i:=0 to opendialog1.Files.Count-1 do begin// 不带扩展名文件名 j:= pos('.',extractfilename(OpenDialog1.Files)); str2:=copy (extractfilename(OpenDialog1.Files),1,j-1); // showmessage(STR2); adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('select * from prdt_pic where prd_no='+''''+str2+''''); adoquery1.Open; if adoquery1.RecordCount=1 then begin //流文件 adoquery1.edit; picstream:=tadoblobstream.Create(tblobfield(adoquery1.fields[1]),bmWrite); picstream.LoadFromFile(opendialog1.Files); picstream.Position:=0; // adoquery1.edit; tblobfield(adoquery1.Fields[1]).loadfromstream(picstream); adoquery1.post; ListBox1.ITems.Add(OpenDialog1.Files.Strings); count1:=count1+1 end; end; showmessage('你已载入图片'+inttostr(count1)+'张'); //更新计算 end;
 
你这个只能更新库中有记录的,没有处理的应该是新的文件,要加入新文件的建立代码,对RecordCount<>1的文件也做个累计,就可以看出来另外:blob可以直接loadfromfile,picstream完全没必要
 
我只要更新图就可以了,这个程序是配合天心ERP用的,经过测试发现是opendialog1问题我做了一个测试程,如下,一次选5000个文件,显示1966,opendialog1有限制吗?procedure TForm1.Button1Click(Sender: TObject);beginIF opendialog1.Execute thenshowmessage(inttostr(opendialog1.files.Count));end;end.
 
可以使用findfirst, findnext遍历目录,我用过几十万个文件都没问题
 
后退
顶部