环境:DELPHI6,C/S结构,使用SQL Server数据库,在客户端有几十个短小的视频文件,不想存入数据库中,想存入服务器的某个文件夹中,数据库表中只存入视频文件的路径和文件名,请教高手如何存入该文件,谢谢。
解决方案 »
- 关于delphi的一些问题
- kbmMW2.61 提交SQL到数据库时的问题 三个字变为一个半字
- substring()的问题,在线急等
- 请教高手: 怎样使用WordDocument1把已经connect的Word文件输出为二进制内存文件
- <高分相送>小弟是菜鸟,谁能给个delphi7 socket通讯的例子?最好是源码
- 请各位高手帮忙,关于用DELPHI和MYSQL数据厍开发网站的问题
- Delphi如何做到监视一个WEB窗口的运行,并能截取WEB窗口发往网站的消息?在线等候...
- 报表中文折行的问题
- 关于IDataObject接口的问题!
- 请问谁知道扩展名为.wdl文件应该用什么程序打开?谢谢!
- 关于fileexists的问题
- 怎样将窗体设置成A4纸的大小,然后把窗体打印出来?
局域网内多人查阅资料用
//这是拷贝文件到指定目录
procedure TUserInfor.NetFileCopy(SourceFile,MoveToFile:string;P:TRzProgressBar);
var
FromF, ToF: file;
NumRead, NumWritten: Integer;
Buf: array[1..2048] of Char;
begin
AssignFile(FromF, MoveToFile);
Reset(FromF, 1); { Record size = 1 } AssignFile(ToF,SourceFile); { Open output file }
Rewrite(ToF, 1); { Record size = 1 } P.PartsComplete:=0;
P.TotalParts:=sizeof(FromF);
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
BlockWrite(ToF, Buf, NumRead, NumWritten);
P.IncPartsByOne;
until (NumRead = 0) or (NumWritten <> NumRead);
CloseFile(FromF);
CloseFile(ToF);
P.PartsComplete:=0;
end;
//创建映射驱动
procedure TUserInfor.CreateDriver(DriverID: string);
var
NetSource:TNetResource;
B:dword;
begin
try
with NetSource do
begin
dwType:=RESOURCETYPE_ANY;
lpLocalName:=Pansichar(DriverID);
lpRemoteName:=Pchar('\\webserver\d$');//服务器的D盘被映射
lpProvider:='';
end; b:=WnetAddConnection2(netSource,Pchar('susuosoft'),Pchar('administrator'),CONNECT_UPDATE_PROFILE);
if not (b=NO_ERROR) then showmessage(SysErrorMessage(GetLastError));
except
// Exit;
ShowMessage('无法联接网络路径');
end;
end;
//删除映射驱动
procedure TUserInfor.DeleteDriver(DriverID: string);
var
dwFlags: DWORD;
errCode: DWORD;
begin
dwFlags := CONNECT_UPDATE_PROFILE;
errCode := WNetCancelConnection2(PChar(DriverID), dwFlags, true);
if (errCode <> NO_ERROR) then
Application.MessageBox(PChar(SysErrorMessage(GetLastError)), '', MB_OK);
end;
//下面是备份源代码
procedure Tfrm_main.N13Click(Sender: TObject);
var
Path:string;
begin
try
path:=ExtractFilePath(application.ExeName)+'DB_back\W'+FormatDateTime('yy-mm-dd',date)+'.bak';
with DM.cmd do
begin
if tag=10 then CommandText:='BACKUP DATABASE official TO disk='''+path+''''
else
CommandText:='BACKUP DATABASE official TO disk=''D:\official_001.bak''';
Execute;
end;
if tag<>10 then
begin
if not DirectoryExists(ExtractFilePath(application.ExeName)+'DB_back') then
CreateDir(ExtractFilePath(application.ExeName)+'DB_back');
userinfo.CreateDriver('Y:');
userinfo.NetFileCopy(path,'Y:\official_001.bak',self.RzProgressBar1);
DeleteFile('Y:\official_001.bak');
userinfo.DeleteDriver('Y:');
end;
UserInfo.WriteMsgToEventLogFile('DB0016',1,'数据库完全备份发生成功!',UserInfo.GetLocalHostName);
MessageDlg('数据库完全备份成功!',mtinformation,[MBOK],0);
except
On E:Exception do
begin
UserInfo.WriteMsgToEventLogFile('DB0016',0,'数据库完全备份发生错误!,错误代码为'+E.Message,UserInfo.GetLocalHostName);
if tag<>10 then
begin
try
DeleteFile('Y:\official_001.bak');
userinfo.DeleteDriver('Y:');
except
end;
end;
MessageDlg('数据库完全备份失败!',mtinformation,[MBOK],0);
end;
end;
end;