影像信息如何在ORACLE数据库中保存?用BLOB字段,如何用?(200分)

  • 主题发起人 主题发起人 zyfstorm
  • 开始时间 开始时间
Z

zyfstorm

Unregistered / Unconfirmed
GUEST, unregistred user!
我目前碰到这样一个问题:
我要将一段电影剪辑或是录像片段存入数据库中,然后再将其从数据库中读出还原成原来的影像信息。我所用的数据库为ORACLE 8.15.
烦请各位帮忙解决。
多谢!
 
建议不要这样保存,否则会加重网络负担。若一定要这样做,则片段文件应尽
可能小一些。方法如下:

1、保存:
先用Insert语句保存除了blob字段外的其他信息,然后在用select命令查出
记录,用TBlobFile(Query1.FieldByName('MOVIE')).LoadFromFile或
LoadFromStream从文件或tstream中把电影片段文件存到数据库中;

2、读出
用select命令查出记录,用TBlobFile(Query1.FieldByName('MOVIE')).
SaveToFile或SaveToStream从数据库读出并存入文件或tstream中。

3、注意:bde设置中的Blob Size必须大于电影片段文件的大小。
 
我要将一段电影剪辑或是录像片段存入数据库中
loadFromStream从文件或tstream中把电影片段文件存到数据库??
电影片段是不是很大?如果这样。你不会愿意看到你的硬盘狂转吧。
loadFromStream 一般读入的是图片文件。而不是影象文件。(当然可以读入影象文件)
你可以这样。只读如影象文件的在硬盘上地址。
读如
Query1.FieldByName('MOVIE1')。asstring:=opendialog。filename;
读出
var
filename:string;
begin
filename:=query1。fieldbyname(movie1)。asstring;
mediaplayer。devicetype:=dtautoselect;
mediaplayer。filename:=filename;
mediaplayer。display:=form2;
mediaplayer。displayrect(0,0,500,400);
mediaplayer。play;
end;
只提示这些具体细节如何分批读如所在路径。自己去改吧。



 
如果只是想对这些影象文件进行管理,
还不如只把文件名和路径存到库里,
剩下的仍然用文件形式。
我做过一个简单的管理软件,就是这样作的。
 
g622 不谋而合。
 
建议你存放大的内容时采用文件方式.
实际上很多商业软件就是这样做的.
只是安全与备份问题要处理好.
 
想想,数据库用Oracle的地方,应该不会是单机运行的。按文件保存,至少
会涉及文件资源共享、跨平台保存等问题。
to 阿蒙:用LoadFromStream/SaveToStream读写的更多的是二进制的数据,
可以没有任何格式。我用tblobfield来处理,就是把整个电影剪辑或录象片断
文件作为二进制数据来原样存取,而不涉及具体的文件格式。保存到Oracle中,
你可能不会看到本机硬盘转个不停,但可能看到网络和运行Oracle的机器象是
不堪重负。c/s方式下数据量可能太大了!。
 
you should use oracle video server to do this.
store vidoes in ovs,then you can use many pc to watch movies at the same time.
 
多人接受答案了。
 
后退
顶部