Шаг 32 - Проект библиотека - Диалоговое окно - Авторы - Запуск

Итак, мы поступим просто. Если в базе данных нет таблицы тот ее просто и тихо нужно создать нечего не говоря пользователю. А зачем ему знать о наших проблемах? Раз должна быть она значит должна. А в Access она вот какая.

32_1.gif (4581 b)

Опять все будет то же самое. Попытка открыть, нет таблицы, создать. Определим имя таблицы.

......
#endif // _AFX_NO_AFXCMN_SUPPORT

#define DATABASENAME "biblio"
#define TABLE_NAME_AUTHOR "Авторы"
//{{AFX_INSERT_LOCATION}}
......

Идем в OnInitDialog класса CDialogAuthor.

BOOL CDialogAuthor::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	CDaoDatabase db;
	db.Open(DATABASENAME); 		//  Открывает DB
	CDaoTableDef cTable(&db);
	try
	{
		cTable.Open(TABLE_NAME_AUTHOR);	   //	попытка открытия таблицы
	}
	catch(...)
	{				// нет ее
		try	
		{
			cTable.Create(TABLE_NAME_AUTHOR); 	// создать
			CDaoFieldInfo ci;
			cTable.CreateField("КодАвтора",dbLong,0,dbAutoIncrField); 
			cTable.CreateField("Имя",dbText,255);
			cTable.CreateField("Фамилия",dbText,255);
			cTable.CreateField("Заметки",dbMemo,0);
			cTable.Append(); 
		}
		catch(...)
		{
			return FALSE;
		}
	
	}
	cTable.Close();	// все закрыть
	db.Close();
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

Достаточно один раз открыть форму что бы таблица появилась в базе данных. Именно этом мы и сделаем. Запустите и откройте форму Авторы. Как результат в таблице она будет. Это нам пригодится для следующего шага.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 07.08.2001