请参照我的回答:http://www.csdn.net/expert/topic/615/615513.xml?temp=.1619989

解决方案 »

  1.   

    用SQL语句进行备份,查:sqlserver中backup database的写法。
    那用什么控件自己选择,只要能连到数据库,执行SQL的就好。
      

  2.   

    BDE用:TQuery
    ADO用:ADOCommand或者ADOQuery,不过最好用ADOCommand,因为ADOQuery在
    执行非查询命令的时候可能有Bug,而ADOCommand没有。
    在备份时候参照Backup Database语句。
    恢复的时候参照Restore Database语句
    在以前的贴子里面我都是详细的描述。
      

  3.   

    ADOQuery.SQL.Text:='BACKUP DATABASE ...';
    ADOQuery.ExecSQL;
      

  4.   

    A. 备份整个 MyNwind 数据库
    说明  MyNwind 数据库仅用于演示。
    下例创建用于存放 MyNwind 数据库完整备份的逻辑备份设备。-- Create a logical backup device for the full MyNwind backup.
    USE master
    EXEC sp_addumpdevice 'disk', 'MyNwind_1', 
       DISK ='c:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\MyNwind_1.dat'-- Back up the full MyNwind database.
    BACKUP DATABASE MyNwind TO MyNwind_1B. 备份数据库和日志
    本例创建了一个数据库和日志的完整备份。将数据库备份到称为 MyNwind_2 的逻辑备份设备上,然后将日志备份到称为 MyNwindLog1 的逻辑备份设备上。 说明  创建逻辑备份设备需要一次完成。
    -- Create the backup device for the full MyNwind backup.
    USE master
    EXEC sp_addumpdevice 'disk', 'MyNwind_2',
       'c:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\MyNwind_2.dat'--Create the log backup device.
    USE master
    EXEC sp_addumpdevice 'disk', 'MyNwindLog1',
       'c:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\MyNwindLog1.dat'-- Back up the full MyNwind database.
    BACKUP DATABASE MyNwind TO MyNwind_2-- Update activity has occurred since the full database backup.-- Back up the log of the MyNwind database.
    BACKUP LOG MyNwind 
       TO MyNwindLog1
      

  5.   

    在备份的时候还要注意,最好设置当前的Database Name为Master,这样可以有效避免对要备份的数据库的占用。
      

  6.   

    用存储过程可以很好地实现该功能
    不过,我觉得更好的应该是在服务器段用代理功能定时来实现悲愤功能,最好将悲愤时间定在完上12点左右,这样的培植可以在SQL Server上的数据库维护计划中来实现
      

  7.   

    用存储过程可以很好地实现该功能
    store procedure DataSys
    //////////////////////////
    CREATE proc datasys --数据备份和恢复 
    (@kind varchar(7),--备份还是恢复
     @filename varchar(100),--文件名
     @retmsg varchar(20) output --返回参数
     )
    asif @kind='backup'
    begin
      backup database SubHealth to disk=@filename with init
    end
    if @kind='restore'  
    begin
     -- drop database clientcenter_bak
      restore database SubHealth from disk=@filename with replace
    endif @kind='backup' select @retmsg='数据库备份成功!'
    if @kind='restore' select @retmsg='成功恢复数据库!'
    return 0GO
      

  8.   

    可以把备份任务制作为一个单独的分布式的组件,到时候就可以使用DCom、Scoket
    等等方式调用远程函数来实现备份,这样在可以联网的任何计算机上面都可以进行备份。我认为存储过程不一定这么好。