请教:在delphi中对数据库(sql数据库)进行备份怎么操作?能详细说明吗?(有代码最好!)谢谢!

解决方案 »

  1.   

    用backup database to disk语句操作就可以了
      

  2.   

    我有一个存储过程!你直接用就可以了! 把这个存储过程加到master库中之后调用存CREATE PROCEDURE pr_AutoBackup @db_to_bak varchar(255),
    @file_path varchar(255),
    @on_hour int,
    @remain_day int
    AS
    DECLARE @this_day int,
    @bak_count int,
    @str_file_name varchar(50),
    @str_del_device varchar(50),
    @str_last_device varchar(50),
    @last_day int,
    @this_hour int,
    @strSQL varchar(90)
    SELECT @this_day = datepart(dayofyear,getdate())
    SELECT @bak_count = count(name),@str_last_device = max(name),
    @last_day = max(convert(int,substring(name,charindex("_",name)+1,3)))
    FROM sysdevices
    WHERE charindex("_",name)=datalength(@db_to_bak)+1
    AND substring(name,1,datalength(@db_to_bak))=@db_to_bak
    IF SUBSTRING(@file_path,datalength(@file_path),1)<>"\"
      SELECT @file_path = @file_path + "\"
    SELECT @this_hour = datepart(hour,getdate())
    IF ((@this_hour = @on_hour)and(@this_day<>@last_day))or(@bak_count = 0)
    BEGIN
    SELECT @str_last_device = @db_to_bak+"_"+convert(varchar(3),@this_day)
    SELECT @str_file_name = @file_path + @str_last_device + ".dat"
    SELECT @strSQL ="DUMP TRANSACTION " + @db_to_bak + " WITH TRUNCATE_ONLY"
    EXECUTE(@strSQL)
    SELECT @strSQL ="sp_addumpdevice 'DISK','"+@str_last_device + "','"+@str_file_name+"'"
    EXECUTE(@strSQL)
    SELECT @strSQL ="DUMP DATABASE "+ @db_to_bak + " TO " + @str_last_device
    EXECUTE(@strSQL)
    SELECT @str_del_device = @db_to_bak + "_" + convert(varchar(4),@this_day - @remain_day)
    SELECT @bak_count = count(name)
    FROM sysdevices
    WHERE name = @str_del_device
    IF (@bak_count=1)
    BEGIN
    SELECT @strSQL ="sp_dropdevice "+ @str_del_device +",DELFILE"
    EXECUTE(@strSQL)
    END
    END
    ELSE
    BEGIN
    SELECT @strSQL ="DUMP TRANSACTION "+ @db_to_bak + " TO " + @str_last_device
    EXECUTE(@strSQL)
    END
    GO
      

  3.   

    调用方法:exec pr_autobackup 'backup_database','d:\data',23,3