可以用存储过程,例: CREATE PROCEDURE [dbo].[BackupDatabase] @dbname VARCHAR(256), @filename VARCHAR(256), @devname VARCHAR(256) AS IF EXISTS(SELECT name FROM master.dbo.sysdevices WHERE cntrltype=2 AND name=@devname) SELECT 'FAIL' ELSE BEGIN EXEC sp_addumpdevice 'disk', @devname, @filename BACKUP DATABASE @dbname to @devname SELECT 'OK' END//DELPHI中调用 function BackupDatabase(DatabaseName,DevName,FileName:string):boolean; var Q:TADOQuery; begin Q :=TADOQuery.Create(Self); try Q.SQL.Add('EXEC BackupDatabase '+Quotedstr(DatabaseName)+','+ Quotedstr(FileName)+','+Quotedstr(DevName)); Q.Open result :=Q.Fields[0].AsString='OK'; Q.Close; finally Q.Free end; end;
CREATE PROCEDURE [dbo].[BackupDatabase]
@dbname VARCHAR(256),
@filename VARCHAR(256),
@devname VARCHAR(256)
AS
IF EXISTS(SELECT name FROM master.dbo.sysdevices WHERE cntrltype=2 AND name=@devname)
SELECT 'FAIL'
ELSE
BEGIN
EXEC sp_addumpdevice 'disk', @devname, @filename
BACKUP DATABASE @dbname to @devname
SELECT 'OK'
END//DELPHI中调用
function BackupDatabase(DatabaseName,DevName,FileName:string):boolean;
var
Q:TADOQuery;
begin
Q :=TADOQuery.Create(Self);
try
Q.SQL.Add('EXEC BackupDatabase '+Quotedstr(DatabaseName)+','+
Quotedstr(FileName)+','+Quotedstr(DevName));
Q.Open
result :=Q.Fields[0].AsString='OK';
Q.Close;
finally
Q.Free
end;
end;
◎备份后取得文件(copy到local)
◎自己把表/列数据存起来。