关于数据库中图像显示与存储的问题(150分)

  • 主题发起人 主题发起人 yesky_2001
  • 开始时间 开始时间
Y

yesky_2001

Unregistered / Unconfirmed
GUEST, unregistred user!
Access2000数据库中有一个“学生基本情况表”其中有一个字段“生涯设计”设为OLE,
用于存放图片,使用Timage显示图像运行时显示"Bitmap not valid" 使用Bmp格式的图片
也出现相同情况。(50)
我如何使用Sql新增、删除一个学生信息(其中一个学生对应多张图片)?是否应将“生涯设计”
使用一个单独表存放,如果这样新增、删除该如何?(100)
 
应该没有这样的问题。
如果不行的化,采用ole控件显示好了,这样绝对没有问题。

第二问题,应该将‘生涯设计’使用一个单独的表存放。减少数据冗余。
后面的问题请说得清楚一点。
 
1.肯定是没有问题的.
2.应该把生涯设计到一个表中的,
 
我是用TField存储图片的。
先把“相片”字段添加到TField中,name:TablePic。
Button1Click事件
if OpenDialog1.Execute then
begin
ADOTable1.Edit;
TablePic.LoadFromFile(OpenDialog1.FileName);
end;

 
如大家所说,我把“生涯设计”新放一个表,那么我现在有两个表一个存储学生基本信息
如:姓名,性别,出生日期等等,一个表存放与学生对应的多个图像,如何在D6中使用SQL
来达到向这两个表里添加删除学生信息的目的 主要是对图像的操作问题(添加,删除,显示)
请给出代码,另外我可以在一个窗体中把多张图片都显示出来吗
 
1.存储:fieldByName('img').assign(image1.picture.bitmap);
2.删除:fieldByName('img').value:=nil;
3.显示:image1.Picture.Assign(tblobfield(query.fieldbyname('img'));
 
我使用了image1.Picture.Assign(tblobfield(adoquery1.fieldbyname('生涯设计')));
但是提示bitmap not valid !!
我不知道到底是怎么搞的 请写一下在Access2000中的如何设置图片字段,不知是不是
数据库的问题
 
image1.Picture.Assign(tblobfield(adoquery1.fieldbyname('生涯设计')));
只能对.bmp文件有效,jpg不行的
 
我用的也是Bmp格式的啊
 
sorry,这样绝对可以显示
image1.Picture.bitmap.Assign(tblobfield(adoquery1.fieldbyname('生涯设计')));
 
weekboy 还是有问题啊 我把数据库发给你看看行吗
 
不要直接把图片存到数据库里去,那样随着数据量增大,
数据库根本承受不了;应该在数据库中保存文件路径,文件保存到存储介质上即可
 
相关代码也传过来:singleyin@163.com
 
如何在数据库里保存文件路径?我不太懂请详细讲讲
 
filepath:string;//文件路径,可以用一个临时文件!
Mystream: TFileStream;
--装载:
Tblobfield(Tablepicture).Savetofile(filepath);
Image1.Picture.LoadFromFile(filepath);
--保存:
Image1.Picture.Bitmap.SaveToStream(Mystream);
Mystream.Position := 0;
Table.Edit;
Tblobfield(Tablepicture).LoadfromStream(Mystream);
Table.post;
//不要忘了Mystream的创建与释放;
如果用jpg格式,就全用文件的方式处理!
loadfromfile()/savefromfile;
 
weekboy 我已经发出了
 
存储时一定要这样:adoquery1.fieldbyname('生涯设计').assign(image1.picture.bitmap);
这样存储的结果是长二进制的,你看看你的库中图片是一个'图片'啊!
 
接受答案
 
后退
顶部