SQL SERVER 复制数据库时如何显示进度条? ( 积分: 100 )

  • 主题发起人 主题发起人 delphihouse
  • 开始时间 开始时间
D

delphihouse

Unregistered / Unconfirmed
GUEST, unregistred user!
有进度条的恢复(对原数据库进行恢复)我从网上抄来是这样的<br>&nbsp;&nbsp;MyRestoreSink&nbsp;:=&nbsp;TRestoreSink.Create;<br>&nbsp;&nbsp;MySQLServer&nbsp;:=&nbsp;coSQLServer.Create;<br>&nbsp;&nbsp;MyRestore&nbsp;:=&nbsp;CoRestore2.Create;<br>&nbsp;&nbsp;MySQLServer.Connect(GetServerName,&nbsp;GetdbUserID,&nbsp;GetdbPassWord);<br>&nbsp;&nbsp;MyRestore.Database&nbsp;:=&nbsp;DataBaseName;<br>&nbsp;&nbsp;MyRestore.PercentCompleteNotification&nbsp;:=&nbsp;1;<br>&nbsp;&nbsp;MyRestore.Files&nbsp;:=&nbsp;RestoreFile;<br>&nbsp;&nbsp;MyRestore.ReplaceDataBase&nbsp;:=&nbsp;True;<br>&nbsp;&nbsp;InterfaceConnect(MyRestore,&nbsp;IID_RestoreSink,&nbsp;MyRestoreSink,&nbsp;FInterfaceConnection);//关键是这里<br>...&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyRestore.SQLRestore(MySQLServer);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;except<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on&nbsp;e:&nbsp;Exception&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ErrorMsg&nbsp;:=&nbsp;e.Message;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;False;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;finally<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MySQLServer.Disconnect;<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>...&nbsp;<br>而执行数据恢复后,生成新数据库的Trans&nbsp;SQL&nbsp;是这样的<br><br>&nbsp;&nbsp;&nbsp;&nbsp;q.SQL.Text&nbsp;:=&nbsp;Format('&nbsp;RESTORE&nbsp;FILELISTONLY&nbsp;FROM&nbsp;DISK&nbsp;=&nbsp;''%s''',&nbsp;[BackupFile])&nbsp;+CRLF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;Format('&nbsp;RESTORE&nbsp;DATABASE&nbsp;%s&nbsp;',&nbsp;[NewdbName])&nbsp;+CRLF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;Format('&nbsp;FROM&nbsp;DISK&nbsp;=&nbsp;''%s''&nbsp;',&nbsp;[BackupFile])+CRLF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;'&nbsp;WITH&nbsp;RECOVERY,&nbsp;'&nbsp;+CRLF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;Format('&nbsp;&nbsp;&nbsp;MOVE&nbsp;''%s_Data''&nbsp;TO&nbsp;''%s%s_Data.mdf'',&nbsp;',&nbsp;[DEF_DB_NAME,&nbsp;DataDir,&nbsp;NewdbName])+CRLF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;Format('&nbsp;&nbsp;&nbsp;MOVE&nbsp;''%s_Log''&nbsp;TO&nbsp;''%s%s_Log.ldf''&nbsp;',&nbsp;[DEF_DB_NAME,&nbsp;DataDir,&nbsp;NewdbName]);<br>&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;ExecuteADOQuery(q,&nbsp;ErrorMsg);<br><br>现在的问题是如何将这两者起来,&nbsp;如何用SQL-DEMO实现带进度条的数据库恢复<br>(相当于用RESTORE的方法来创建数据库的复本),恢复后生成新的数据库
 
后退
顶部