如何在vc程序中备份还原sqlserver数据库?[在线等待].

解决方案 »

  1.   

    如果是sql sever按下面做就行了
    备份:
             CDatabase db;
    CString s1;
    s1.Format("ODBC;UID=sa;PWD=%s","wei147");
    db.Open("odbcname",false,false,s1);
    s1.Format("backup database report to disk='e:\\report.bak\\backs.dat'"); //备份到E:\report.bak\backs.dat
    db.ExecuteSQL(s1);
    恢复:
             恢复时用户不能连接要恢复的数据库,这非常重要.
    CDatabase db1;
             s1.Format("ODBC;UID=sa;PWD=%s","wei147");
    db1.Open("odbcname",false,false,s1);
    s1.Format("restore database report from  disk='c:\\report.bak\\backs.dat'");
    db1.ExecuteSQL(s1);
    db1.Close();
      

  2.   

    使用SQL本身的备份存储过程
    BACKUP DATABASE { database_name | @database_name_var } 
    TO < backup_device > [ ,...n ] 
    [ WITH
        [ BLOCKSIZE = { blocksize | @blocksize_variable } ]
        [ [ , ] DESCRIPTION = { 'text' | @text_variable } ]
        [ [ , ] DIFFERENTIAL ]
        [ [ , ] EXPIREDATE = { date | @date_var }
            | RETAINDAYS = { days | @days_var } ]
        [ [ , ] PASSWORD = { password | @password_variable } ]
        [ [ , ] FORMAT | NOFORMAT ]
        [ [ , ] { INIT | NOINIT } ]
        [ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ]
        [ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
        [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
        [ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]
        [ [ , ] { NOSKIP | SKIP } ]
        [ [ , ] { NOREWIND | REWIND } ]
        [ [ , ] { NOUNLOAD | UNLOAD } ]
        [ [ , ] RESTART ]
        [ [ , ] STATS [ = percentage ] ] 
    ]
    备份特定的文件或文件组:BACKUP DATABASE { database_name | @database_name_var }还原整个数据库:RESTORE DATABASE { database_name | @database_name_var } 还原数据库的部分内容:RESTORE DATABASE { database_name | @database_name_var }
        
    或者在后台使用BUCK和BCP命令后台备份数据库的表