如何将大量bmp图形文件输入数据库的图形字段中(100分)

  • 主题发起人 主题发起人 billxm
  • 开始时间 开始时间
B

billxm

Unregistered / Unconfirmed
GUEST, unregistred user!
我有大量bmp图形文件,如0001.bmp,0002.bmp,...,5666.bmp,如何通过
编程完成自动录入到某个数据库的图形字段中,此字段的属性为G,或者可否
将此字段的属性设为A,字段存放图形文件的路径和文件名,如何调用,如何
显示通过DBimage部件。
 
写一个文件到数据库字段中(sql方法):
var
buf: string;
f, l: Integer;
begin
f := fileopen('0001.bmp', fmOpenRead);
l := fileseek(f, 0, 2);
fileseek(f, 0, 0);
setstring(buf, nil, l);
fileread(f, buf[1], l);
fileclose(f);
query1.close;
query1.sql.text := 'insert into glyphtable set glyphfield = :buf';
query1.params.parambyname('buf').asblob := buf;
query1.execsql;
end;

如果字段中保存的是路径和文件名, 则可以用TImage来显示(直接loadfromfile)即可.
 
写错了.
query1.sql.text := 'insert into glyphtable (glyphfield) values (:buf)';
 
这种情况最好在数据库里面保存文件的名字,图片是单独存放的,这样还可以自由修改图片. 显示时通过保存的文件名打开显示就是了. 我最近正在做一个"电子相册",就是这样实现的.

不提倡把大量图片保存在数据库里面,影响系统效率.而且似乎也太站空间了---比单独的文件占地方.
 
我可以给你个现成的要吗?
 
能否给我一份。sunjinhua@263.net
多谢了。
 
请问cAkk和menxin能否将程序传给我,在此非常感谢
我的email :xmbill@263.net,或告之那里可下载,你也可以上载
到ftp://202.114.35.1/incoming/ccnu
 
no problem,please wait a moment ...
 
billxm:
你那个地址根本连不上,只能发mail吧。

简单说明一下:
这个程序是我们向数据库加入图形用的,所有的界面中用到的图形都被存到里
面,为节省空间,全部用jpg格式存储,用stream写入、读出。用法也没什么,应该
可以理解。由于是我们自己使用,界面不怎么样,对付着用吧。
 
两位,已经发完了。 :)
 
menxin :
能否给<a href="mailto:lxg@math.zju.edu.cn">我</a>寄一份? 急需!, Thx
 
不知道你的图片是存在本地Paradox库 还是存在数据库服务器上?
1.本地Paradox库: 建议使用cakk的方法,用image.loadfromfile(path +
filename)即可.
2.数据库服务器: 如果图片平均大小为300k以内,建议使用Another_eYes
的方法,既可以实现数据共享,速度也还可以.如果图片大小大于300k,则
速度明显降低.我在Oracle中存了一张1.3M的图,显示时间为1分多钟.根据
你自己的要求,可作出相应选择.
 
billxm:你的问题怎样了?
 
为什么没有答复,行不行啊?!
 
menxin,
mail a copy to me, please.
Email:lxj@ns.glc.cn.net
 
lixuejun:
老朋友了,已经发了.
 
这个问题我已解决了
 
解决了还不发分,想让我把分还给你吗?
 
多人接受答案了。
 
后退
顶部