3.8.6 数据库还原模块
数据库还原模块的功能是对系统数据库完成还原处理。数据库备份和还原是一对孪生兄弟,当数据库备份后,需要还原操作才能够继续在项目中使用。具体实现流程如下。
(1) 创建一个对话框资源IDD_RESTORE_DLG,添加的控件如图3-17所示。
|
| 图3-17 还原数据库设计界面 |
(2) 双击对话框,创建一个新类CBackupDlg,对应代码如下: - class CRestoreDlg : public CDialog
- {
- public:
- CRestoreDlg(CWnd* pParent = NULL);
(3) 给"还原"按钮添加消息响应函数,该函数的功能是实现对指定数据库的数据还原处理。具体实现代码如下:
- void CRestoreDlg::OnRestore()
- {
- UpdateData(); //数据的更新
- if(m_strPath == "")
- {
- MessageBox("请选择路径!");
- return ;
- }
- _ConnectionPtr pConnection;
- try
- {
- HRESULT hr = pConnection.CreateInstance("ADODB.Connection");
- //创建Connection对象
- pConnection->Open("driver={SQL Server}
;Server=.;DATABASE=master;UID=sa;PWD=","","",adModeUnknown); - CString sql;//定义字符串变量
- sql.Format("use master restore database
HMSys from disk = '%s' with move 'HMSys_data' to
'c:\\HMSys.mdf', move 'HMSys_log' to 'c:\\HMSys.ldf'", m_strPath); - pConnection->Execute((_bstr_t)sql, NULL, adCmdText);
- MessageBox("还原成功!");
- pConnection->Close();//关闭连接
- }
- CATCH_ERROR;
- }