我现在正在做一个系统,其中有一个模块是管理文件的(如WORD)现在想做的是,如果是1M以下的文档我可以用流的形式存到数据库中,再用OLE掉用,此功能已经实现了,现在出现大文档像几M,几十M的文档这样在数据库中查询出来就非常慢,现在想考虑的是怎么样能把文档从客户端存到服务器上,在查询时也可以直接从服务器上打开文档开查询。请高手帮忙
解决方案 »
- 最新的录屏技术
- 急急急!!!关于繁体字!!!!
- 哪里有“Delphi数据库开发实例解析”工业机械出版社出版的书籍和源代码下载?
- 听说ExpressQuantumGrid Suite v5.0 的BUG太多,不好用
- 有哪位曾经做过mp3播放器练笔,能不能借我参照参照!谢谢!
- 重庆地区,10000人民币,招程序员一人,详情请进。
- Fastrept中如何根据字段中内容(图片路经)动态打印图片
- delphi2010新建form
- 如何获得sql操作的错误信息
- 入门者问题:如何实现在DBGrid上点击一个Cell(即行和列的交叉区),下拉出另一个DBGrid,用户在其中选一行后,就会设置原DBGrid的当前字
- sql-server后台的存储过程如何搬到前台执行?因为我想做单机版的程序,数据库是access.
- sql表和表数据同步问题,请高手赐教!!!!
CSDN论坛浏览器:浏览、发帖、回复、结贴自动平均给分,下载地址:http://CoolSlob.ys168.com
分不够可以再加。
二进制流的方式我知道怎么做上传文件是没有问题但是如果有1000个几个M的文档你查询的时候会怎么样?打开文档的时间会多慢?
年限:2年
技術:.Net BS开发
工資:avg>>5K + 福利,几乎不加班,工作开心,心情愉快。
公司性質:汽车门户网站。 PS: 透露点消息,我们公司正在招.net BS开发人员,如果哪位同仁想换工作,是一个不错的机会选择,加[email protected] 说应聘即可!
年限:2年
技術:.Net BS开发
工資:avg>>5K + 福利,几乎不加班,工作开心,心情愉快。
公司性質:汽车门户网站。 PS: 透露点消息,我们公司正在招.net BS开发人员,如果哪位同仁想换工作,是一个不错的机会选择,加[email protected] 说应聘即可!
如果非要存放在数据库中,也不要和业务表直接存放在一起。而是做放在单独的一个table中。用户需要时在打开数据,默认的时候不打开!
最简单的办法就是文件共享方式。
如果可以共享服务器的某一个目录sharedoc就可以直接copyfile实现,比如:
if copyfile('d:\a.txt','\\192.168.0.151\sharedoc\a.txt',false) then
begin
sleep(1000);
winexec('notepad.exe \\192.168.0.151\a\c.txt',sw_show);
end;
举个例子而已,但对于查询和管理在本地操作,比如数据库仅仅存储文件路径和文件名等等如果不能共享就要实现文件上传了。
COPYFILE和WINEXEC都 不好使。
1、将文件保存在服务器端的目录中
2、在服务器端数据库中保存文件的索引信息(主要是文件名和路径等)
3、客户端和服务端通过Socket传输文件(二进制)
这样在数据库中查询某一个文档就会很快,查到后再读取文档,通过Socket传到客户端,客户端接收完整后再用Word打开。当客户端通过Socket上传文件时,服务端接收文件后保存到本地目录,并在数据库中添加索引信息。
\\远程计算机名或ip\共享文件夹名称\具体文件
10M的DOC文件通过RAR模式压缩一般在1M之内Delphi本身就有自带的压缩控件(ZLib),可以试一下,这样你几乎不用改什么东西,只是在上传下载流的时候加一步压缩或解压即可。当然文件太多了以后不建议使用此方法,主要是太慢了,对数据库服务器要求太高,随随便便几个数十个文件后数据库文件都以G论,而且除了这些后数据库可能也就是数十M而已。
用copyfile这个函数不行。因为要向服务器登录和用用户名和密码的
用映射就没问题。