最近遇到关于批量存取图片的问题:
最近想做一个关于客户管理的小东西,手中有一个文本。文本文件里边记录了客户的资料:id/姓名/地址
另外有客户的相片,其中相片的命名方式是:客户的id作为文件名
现在想将客户的资料和相片同时存入数据库
预定使用的数据库为:paradox或access
请教各位大侠:对于相片的批量插入该如何解决?
1、是先将文本插入数据库,最后再插入相片?还是客户资料和相片同时插入?
2、数量大的话效率如何?
最近想做一个关于客户管理的小东西,手中有一个文本。文本文件里边记录了客户的资料:id/姓名/地址
另外有客户的相片,其中相片的命名方式是:客户的id作为文件名
现在想将客户的资料和相片同时存入数据库
预定使用的数据库为:paradox或access
请教各位大侠:对于相片的批量插入该如何解决?
1、是先将文本插入数据库,最后再插入相片?还是客户资料和相片同时插入?
2、数量大的话效率如何?
解决方案 »
- 如果Borland IDE一定要被出售,你最希望谁是买家?
- 转行散分--程序员不能干一辈子 顶者有分
- 如何用grid将纵向显示的数据横向分行显示(快帮帮我)
- 关于开发传奇外挂。
- TPopupMenu 的小问题
- 关于dbExprss的
- why the image flashes when use lineto to draw a line under win2000?
- 关于timer的一个问题
- 如何强制控制DBGrid中字段的长度
- 关于"请问delphi中,可不可以把一些类封装在包中",请进??
- 如何判断当前Windows是否是繁体版?如何把简体ANSI字符串转换为繁体字符串?
- 分数很少,请教一个菜鸟级的问题,99%的人都会
Table1.Insert; // 將圖片存至 Table1 的 Field1 欄位
Table1Field1.LoadFromFile('c:\Windows\Waves.bmp');
Table1.Post; (2).用 LoadFromStream 的方法
var FS: TFileStream;
begin
Table1.Insert;
FS := TFileStream.Create('c:\Windows\Winlogo.bmp', fmOpenRead);
try
Table1Field1.LoadFromStream(FS);
finally
FS.Free;
end;
Table1.Post;
end;2.將 Blob 欄位取出, 在 Image1 上顯示:
uses jpeg;
var Stream1: TFileStream;
jpeg: TJPEGImage;
begin
Stream1 := TBlobStream.Create(Table1Field1, bmRead); // 將 Table1 的 Field1 欄位取出
try
jpeg.LoadFromStream(Stream1);
Image1.Picture.Assign(jpeg);
finally
jpeg.Free;
Stream1.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);var
sr: TSearchRec;
FileAttrs: Integer;
begin
StringGrid1.RowCount := 1;
if CheckBox1.Checked then
FileAttrs := faReadOnly
else
FileAttrs := 0;
if CheckBox2.Checked then
FileAttrs := FileAttrs + faHidden;
if CheckBox3.Checked then
FileAttrs := FileAttrs + faSysFile;
if CheckBox4.Checked then
FileAttrs := FileAttrs + faVolumeID;
if CheckBox5.Checked then FileAttrs := FileAttrs + faDirectory;
if CheckBox6.Checked then
FileAttrs := FileAttrs + faArchive;
if CheckBox7.Checked then FileAttrs := FileAttrs + faAnyFile; with StringGrid1 do
begin
RowCount := 0; if FindFirst(Edit1.Text, FileAttrs, sr) = 0 then begin
repeat
if (sr.Attr and FileAttrs) = sr.Attr then
begin
RowCount := RowCount + 1;
Cells[1,RowCount-1] := sr.Name;
Cells[2,RowCount-1] := IntToStr(sr.Size);
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
end;
end;
我先从文本读取客户id,然后根据客户id在特定目录下查找以该id命名的相片
最后将客户信息、相片一同插入数据库
读取完一个客户信息、接着第二个……直到文本结束
已经实现功能。
欢迎大家继续提供思路、或者是效率上的意见,谢谢!
我还想听听大家的其他思路、建议
稍后结帖
极度怀疑delphi+Access的效率
昨天我试着用Access结果程序运行了一个半小时,而同样的程序、同样的数据改用Paradox却只需1分40秒左右,使用Paradox也有个大缺点:使用很不方便。表连接、合成表等方面存在较大缺撼
(同一部机器实测)
所以我想如果这个小东西也用Access话大概也会遭遇相同的效率难题
做过的请提供一些效率上的建议,谢谢!
即将结帖。
--------------------------
请教这位大侠,如何实现?
关键是这个图片能显示在报表里边,以便打印