一个很简单,但是很急的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 cf83325
  • 开始时间 开始时间
C

cf83325

Unregistered / Unconfirmed
GUEST, unregistred user!
本人今天晚上6点就要交工了,现在有一个问题没有通过<br>&nbsp;&nbsp;&nbsp;这样的.我有一个叫Manager.mdb的数据库<br>&nbsp;&nbsp;我现在要实现数据库备份<br>&nbsp;&nbsp;&nbsp;&nbsp;我的代码如下:<br>procedure&nbsp;TForm1.btn1Click(Sender:&nbsp;TObject);<br>begin<br>qry1.SQL.Text:='backup&nbsp;database&nbsp;Manager.mdb&nbsp;to&nbsp;disk&nbsp;='+''''+'c:/Manager.dat'+'''';<br>end;<br>怎么在c盘没有看到备份文件啊,也就是说这条语句没有执行.....好心的人给予我帮助吧.很急,今天晚上就要交系统了
 
mdb的数据库?<br>Access数据库不支持&nbsp;'backup&nbsp;database&nbsp;的操作。<br>单文件数据库,采用copy文件操作就可以了。
 
Procedure&nbsp;TFm_DBBackUp.CopyFileWithProgressBar(Source,Destination&nbsp;:&nbsp;string);<br>var<br>&nbsp;&nbsp;FromF,ToF&nbsp;:&nbsp;file&nbsp;of&nbsp;byte;<br>&nbsp;&nbsp;Buffer&nbsp;:&nbsp;array[0..4096]&nbsp;of&nbsp;char;<br>&nbsp;&nbsp;NumRead&nbsp;:&nbsp;integer;<br>&nbsp;&nbsp;FileLength&nbsp;:&nbsp;longint;<br>begin<br>&nbsp;&nbsp;AssignFile(FromF,Source);<br>&nbsp;&nbsp;reset(FromF);<br>&nbsp;&nbsp;AssignFile(ToF,Destination);<br>&nbsp;&nbsp;rewrite(ToF);<br>&nbsp;&nbsp;FileLength:=FileSize(FromF);<br>&nbsp;&nbsp;With&nbsp;Progressbar1&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Min&nbsp;:=&nbsp;0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Max&nbsp;:=&nbsp;FileLength;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;FileLength&nbsp;&gt;&nbsp;0&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BlockRead(FromF,Buffer[0],SizeOf(Buffer),NumRead);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileLength&nbsp;:=&nbsp;FileLength&nbsp;-&nbsp;NumRead;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BlockWrite(ToF,Buffer[0],NumRead);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Position&nbsp;:=&nbsp;Position&nbsp;+&nbsp;NumRead;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;CloseFile(FromF);<br>&nbsp;&nbsp;CloseFile(ToF);<br>end;<br><br><br>procedure&nbsp;TFm_DBBackUp.BtnBackUpClick(Sender:&nbsp;TObject);<br>var<br>&nbsp;databasepath,newpath,filename:string;<br>begin<br>&nbsp;&nbsp;if&nbsp;(Trim(edit1.Text)='')then<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;application.MessageBox('请选择路径','提示',mb_oK+MB_ICONINFORMATION);<br>&nbsp;&nbsp;&nbsp;&nbsp;Exit;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;//if&nbsp;application.MessageBox('确定','提示',mb_okcancel)=ID_OK&nbsp;then<br>&nbsp;&nbsp;btnclose.Enabled:=False;<br>&nbsp;&nbsp;DataBasepath:=ExtractFileDir(paramstr(0));<br>&nbsp;&nbsp;DataBasepath:=DataBasepath+'/gdzc.mdb';<br>&nbsp;&nbsp;filename:=datetimetostr(date())+'.bak';<br>&nbsp;&nbsp;newpath:=edit1.Text+'/'+filename;<br>&nbsp;&nbsp;if&nbsp;dm.ADOConnection1.Connected&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;dm.ADOConnection1.Close;<br>&nbsp;&nbsp;if&nbsp;fileExists(newpath)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;application.MessageBox('当天的数据备份已存在,是否覆盖?','提示',mb_okcancel)=ID_OK&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//copyfile(pchar(DataBasePath),pchar(newpath),False)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CopyFileWithProgressBar(DataBasePath,newpath)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit;<br>&nbsp;&nbsp;&nbsp;&nbsp;end<br>&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//copyfile(pchar(DataBasePath),pchar(newpath),True);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CopyFileWithProgressBar(DataBasePath,newpath);<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;btnclose.Enabled:=true;<br>&nbsp;&nbsp;application.MessageBox('数据备份成功!','提示',mb_ok);<br>&nbsp;&nbsp;dm.ADOConnection1.Open();<br>&nbsp;&nbsp;Self.Close;<br><br>end;<br><br><br>自己整理一下,肯定OK了,很简单的,到网上搜索一下
 
mdb的数据库,可以不可以用U盘每天复制一份出来呢?或者存在其他盘,我觉得,存在C盘不妥当.
 
Ok.这是CSDN上的一段代码..........我看过了.<br>我想用sql语句实现数据库的备份....
 
文件类数据库有必要搞得这么复杂吗?<br>==========================================<br>欢迎加入&nbsp;delphi+sql&nbsp;server&nbsp;群:14799474
 
为什么一定要用SQL来实现?
 
access里面能支持&nbsp;backup语句吗?&nbsp;弱弱问一句......<br><br>好象没听说过啊。
 
with&nbsp;qry1&nbsp;do<br>begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qry1.close;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qry1.sql.clear;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qry1.qry1.add('backup&nbsp;database&nbsp;Manager&nbsp;to&nbsp;disk='C:/Manager.bak'');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qry1.execsql;<br>end;<br><br>你试一下看可以吗?如果行的话跟我说一声好吗?
 
procedure&nbsp;TForm1.Button1Click(Sender:&nbsp;TObject);<br>begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;adoquery1&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adoquery1.Close;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adoquery1.SQL.Clear;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adoquery1.SQL.Add('&nbsp;backup&nbsp;database&nbsp;ExpData&nbsp;to&nbsp;disk=''F:/WYR.bak''&nbsp;');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adoquery1.ExecSQL;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br><br>end;<br><br>end.<br><br>Delphi7,测试通过没有问题.
 
谢谢~~!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
后退
顶部