Шаг 7 - Создаем файл базы

Давно не пополнялся этот раздел. 
Теперь мы пойдем другим путем. Начнем все создавать.
И с графическим интерфейсом.

Задача наша такая. Нам надо создать файл базы данных MDB. Для начала сгененируйте приложение с использованием AppWizard на основе диалогового окна. Поместите в окно поле редактирования и кнопку Create Base. Кнопку OK удалите просто :-)

7_1.gif (1437 b)

Теперь нам надо создать переменную соответствующую полю редактирования и событие реакции на нажатие кнопки.

class CCteateMDBDlg : public CDialog
{
	......
// Dialog Data
	//{{AFX_DATA(CCteateMDBDlg)
	enum { IDD = IDD_CTEATEMDB_DIALOG };
	CString	m_MDB_Name;
	......

void CCteateMDBDlg::OnButton1() 
{


}

Для работы с функциями DAO нам надо подключить заголовочный файл. Вот так:

// CteateMDBDlg.cpp : implementation file
//

#include "stdafx.h"
#include "CteateMDB.h"
#include "CteateMDBDlg.h"
#include "afxdao.h"
......

Вот можно писать код. Смотрите:

void CCteateMDBDlg::OnButton1() 
{
	CDaoWorkspace* cw=NULL; 
	CDaoDatabase* cd=NULL;

	UpdateData();

	try
	{
		cw=new CDaoWorkspace(); 
		cd = new CDaoDatabase(cw);
		cd->Create(m_MDB_Name); 
		cd->Close();
		cw->Close();
		delete cd;
		delete cw;
	}

	catch(CDaoException* cDaoError)
	{
		if (cd!=NULL) 
		{
			cd->Close();
			delete cd;
		}
		if (cw!=NULL) 
		{
			cw->Close();
			delete cw;
		}

		AfxMessageBox(cDaoError->m_pErrorInfo->m_strDescription);
	}
}

Я создаю рабочую область и на основе ее базу данных. В классе базы данных есть функция Create, которая уммет создавать файл базы данных.

virtual void Create( LPCTSTR lpszName, 
	LPCTSTR lpszLocale = dbLangGeneral, int dwOptions = 0 );
throw( CDaoException, CMemoryException );

Ну и все :-) Да, я использовал try для защиты от ошибок создания базы данных. И класс, который возвращается в результате исключения для того, чтобы вывести сообщение об ошибке. Это сообщение есть краткое описание ошибки.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 21.07.2000