三层数据库,解决服务器备份文件时死机,该如何处理

三层数据库,解决服务器备份文件时死机
本人编写D7+SQL2005三层数据库,有一个客户,在下午2时,常出现死机。服务器使用Win7系统,此时出现Win7常出现的“程序等待”状态,客户端不能保存数据。起初我一直认为是win7系统的原故。昨天,又发生此情况,发现该用户设置2:00备份数据库。正是备份数据出现的冲突。这样,经分析后,提出解决方案:在备份数据时,使用了线程。
编程后,试用完全解决上述问题。代码如下:

一、声明一线程Tthread1
type
  Tthread1 = class(Tthread)
  protected
  procedure Execute;override;
  end;

二、为线程编写执行代码
procedure Tthread1.Execute;
var FileName,FileNameH,SQL:string;
  ADOQ:TADOQuery;
  iFH,L : Integer;
  SearRec : TSearchRec;
  FileKind : Integer;
begin
  FreeOnTerminate:=true;
  if (BackUpPath1<>'') and DirectoryExists(BackUpPath1) then // 确定目录存在
  begin
  try
  FileName:=BackUpPath1+UsesName+'_'+FormatDateTime('yyyy-mm-dd_hh',Now)+'_SQL.BAK';
  ADOQ:=TADOQuery.Create(nil);
  ADOQ.Connection:=DataModule1.ADOCon;
  SQL:='Use Master Backup Database '+DatabaseName+' to Disk='''+ FileName+''' Use '+DatabaseName;
  ADOQ.SQL.Text:=SQL;
  ADOQ.ExecSQL;
  ServerFrm.Memo1.Lines.Add(' 备份数据:'+FileName);
  except
  ServerFrm.Memo1.Lines.Add(' 备份数据失败!');
  end;
  end;
// 线程结束
end;

三、启动线程代码
procedure TServerFrm.N30Click(Sender: TObject);
var myThread:Tthread1;
begin
  myThread:=Tthread1.Create(false); // 启动线程 备份数据库 、、
end;

代码贴出,以警示同行。欢迎指正。







------解决方案--------------------
楼主好心

不过为什么要给客户端开放备份数据库这个功能?
------解决方案--------------------
这种想法可以的。备份数据库应该是自己做的吧
------解决方案--------------------
 
lyhoo163
你好,请关注一下我的帖子吧,也请多多赐教

http://topic.csdn.net/u/20111228/16/c561c4ed-5c56-43a6-a40f-a55577f4da17.html
------解决方案--------------------
[img=http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/42.gif][/img]
------解决方案--------------------
楼主共享的精神真好!