文件为PDF格式,少则30 40页,多则400 500页,份数为20W左右
个人没有什么好的办法将文件存入数据库
现在初步决定弄一台文件服务器,在客服端指定文件,复制到服务器相应的文件夹
然后在数据库建立索引,存放文件路径
由于没有做过这方面得东西,不知道在做的过程中有没有什么难点需要注意
还有不知道大家对这类问题有没有好的解决方法
请大家多多指教,先行谢过。
个人没有什么好的办法将文件存入数据库
现在初步决定弄一台文件服务器,在客服端指定文件,复制到服务器相应的文件夹
然后在数据库建立索引,存放文件路径
由于没有做过这方面得东西,不知道在做的过程中有没有什么难点需要注意
还有不知道大家对这类问题有没有好的解决方法
请大家多多指教,先行谢过。
解决方案 »
- adoquery1.Recordset.Filter 属性的问题。
- 把一个表中的数据导出到Excel ,或都是DBGRID中的数据导也到Excel.
- delphi往word插入多表格,效果跟目标差一点点
- 简体版本转换为繁体版本
- 关于StrToInt('1000000000')就正常,StrToInt('10000000000')就报错,只是因为多了一个零,有没有别的函数可以解决这个问题?
- ExpressQuantumGrid怎样用回车在列间移动?
- 想做一个联众那样的C/S棋牌游戏
- fsMDIChild A窗体可以调用fsForm B窗体吗(A是B的父窗体,B嵌入A中)?
- 我的主程序可不可以带参数?
- 我用Rave5制作报表,用RAVE模拟显示正常,可程序调用为何数据就显示为“invalid”?
- C 翻译 delphi 算法 这个功能用delphi 7 VCL怎么实现?
- 怎么让一个文本框实现联想
DELPHI 技术大全,明日科技出的书里面有一个例子的。你可以查一下资料。
将文件存入SQL SERVER<2008 FileStream建议>,能更灵活控制安全性
若以每个文件10M计,预计3T空间,呵呵,仔细规划好
1、传送文件到服务器保存,数据库保存数据库的存储路径
2、文件直接保存到数据库的大数据image字段。
文件服务器可以采用常规的FTP,而数据库服务器可以存放ftp用户密码做权限,以及用FTP地址和Ftp文件相对路径做文件检索,这样可以分担文件服务器的存储压力
procedure TKeyinForm.BitBtn4Click(Sender: TObject);
Var
TDate,OldFile,NewFile:String;
begin
TDate:=FormatDateTime('YYYYMMDD',Now);
OldFile:='Edit1.Text'; //?
NewFile:='\\192.168.1.1\Temporary\CRS\'+TDate; //?
//红色部分这个地方该怎么写?
if not FileExists('\\192.168.1.1\Temporary\CRS\'+TDate) then
begin
CreateDirectory(PChar('\\192.168.1.1\Temporary\CRS\'+TDate),nil);
CopyFile(PChar(OldFile),PChar(NewFile),False);
end
else
CopyFile(PChar(OldFile),PChar(NewFile),False);
end;
[pdffile]
fileserver = 192.168.0.1
filepath = \temporary\grs
在代码中将ini文件的相关信息读出来赋给一个Tstring。这样会灵活点,。如果把路径存到数据库,fileserver的地址改了,难道你要把所有的字段值都改一次?
直接调用一个外部命令:cmd /c copy ... ...
//对文件进行操作
var
FData: TShFileOpStruct;
begin
fillchar(FData, sizeof(TShFileOpStruct), 0);
Fdata.pFrom := PChar(fFrom + #0#0);
//设立数据源路径和文件、目录名,支(?,*通配符)
fdata.pTo := PChar(fTo + #0#0); //设立目标路径
case Action of
0: fdata.wFunc := FO_COPY; //copy
1: fdata.wFunc := FO_MOVE; //move
2: fdata.wFunc := FO_DELETE; //delete
3: fdata.wFunc := FO_RENAME; //rename
else
fdata.wFunc := FO_COPY;
end;
fData.fFlags := FOF_ALLOWUNDO; //设定操作选 项
fData.fAnyOperationsAborted := false;
fData.hNameMappings := nil;
case Action of
0: fData.lpszProgressTitle := '复制文件'; //copy
1: fData.lpszProgressTitle := '移动文件'; //move
2: fData.lpszProgressTitle := '删除文件'; //delete
3: fData.lpszProgressTitle := '重命名'; //rename
end;
result := ShFileOperation(FData) = 0;
end;
但是共享文件夹我曾经遇见过一种情况网络正常,但是不知道为什么有时候访问共享文件夹居然会超时30秒以上,这个问题我一直困扰了我很久,起先还以为程序有问题,结果是共享问题,因此后来一直放弃使用这种方式,因此我还是建议使用FTP,至少可以在网络正常情况下稳定传输,而且可以后台执行甚至断点续传
对FTP,网络传输方面一窍不通,你以前也做过这方面的东西,能否给一份DEMO学习一下?