sqlserver实现带进度条的数据库备份
sql server 实现带进度条的数据库备份SQL Server 实现带进度条的数据库备份!日期:2006 年 2 月4 日 作者: yitang 人气: 2517 查看:大 字体 中字体 小字体 找了两天,终于找到了,改了一下,如果写成线程方式效果 更好,分享! 先导入 SQLDMO 生成 SQLDMO_TLB.pas 文件 unit Unit3;interface usesWindows, Messages, SysUtils, Variants, Classes, Graphics,Controls, Forms,Dialogs,SQLDMO_TLB, StdCtrls, ComCtrls,comobj; typeTForm3 = class(TForm)Button1: TButton;ProgressBar1: TProgressBar; procedureButton1Click(Sender: TObject);private Private declarations public Public declarations end;typeTBackupSink=class(TInterfacedobject,backupsink)/ 实现接 口function PercentComplete(const Message: WideString; Percent:Integer): HResult; stdcall;function NextMedia(const Message: WideString): HResult;stdcall;function Complete(const Message: WideString): HResult;stdcall;end;varForm3: TForm3;implementation$R *.dfmfunction TBackupSink.PercentComplete(const Message:WideString; Percent: Integer):HResult;beginForm3.ProgressBar1.Position:=percent;result:=0;end;function TBackupSink.NextMedia(const Message:WideString):HResult;beginresult:=-1;end;function TBackupSink.Complete(const Message:WideString):HResult;beginresult:=1;end;procedure TForm3.Button1Click(Sender: TObject); varMySQLServer:SQLServer;MyBackUp:BackUp2;MyBackSink:TBackupSink;FInterfaceConnection:integer;BS:TBackupSink;beginBS:=TBackupSink.Create;MySQLServer:=coSQLServer.Create;MyBackUp:=coBackUp2.Create;MySQLServer.Connect(192.169.1.10,sa,password);MyBackUp.Database:=DBA;MyBackUp.Initialize:=true;MyBackUp.PercentCompleteNotification:=1;MyBackUp.Action:=0;/0 完整备份, 1 差异备份, 2 文件组 备份, 3 日志备份MyBackUp.Files:=d:dba.bak;InterfaceConnect(MyBackUp, IID_BackupSink, BS,FInterfaceConnection);/ 关键是这里MyBackUp.SQLBackup (MySQLServer);InterfaceDisconnect(MyBackUp,IID_BackupSink,FInterfaceConnection);/ end;end.