C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 31 - Проект библиотека - Диалоговое окно - Авторы / DAO / Visual C++

Шаг 31 - Проект библиотека - Диалоговое окно - Авторы

Этот диалог в Access выглядит так:

31_1.gif (6456 b)

Итак, нам нужно в ресурсы добавить диалоговую панель. Естественно связать с классом CDialogAuthor.

31_2.gif (7950 b)

Наш диалог будет работать с DAO поэтому надо подключить заголовки.

// DialogAuthor.h : header file
//

#include "afxdao.h"

/////////////////////////
// CDialogAuthor dialog
......

А описание самого диалога должно быть доступно для функций главного диалога программы.

////////////////////////////
// CBiblioDlg dialog

#include "DialogAuthor.h"
......

Организуем запуск окна:

void CBiblioDlg::OnButtonContens() 
{
	CDialogAuthor cd;
	cd.DoModal(); 
}

Все окно готово к эксплутации. Прежде чем двинуться дальше нам нужно создать базу данных. Это можно сделать двумя способами. Используя Access и программным путем. Будет делать программным путем. Мы должны при запуске программы проверить есть ли файл базы данных, а если нет, то создать его и не пугать пользователя. Вот так и поступим. Для начала запустим DAO.

////////////////////////////////
// CBiblioDlg message handlers

BOOL CBiblioDlg::OnInitDialog()
{
	......
	
	// TODO: Add extra initialization here
	try
	{
		// при ошибке исключение
		AfxDaoInit( );
	}
	catch(...)
	{
		AfxMessageBox("Error Dao Init");
		return FALSE;	// не удалось создать диалог
	}
	return TRUE;  // return TRUE  unless you set the focus to a control
}

Так же при запуске окна мы должны проверить существования файла базы данных, если нет его - создать. Сначала определение имени. В stdafx.h.

#endif // _AFX_NO_AFXCMN_SUPPORT

#define DATABASENAME "biblio"
//{{AFX_INSERT_LOCATION}}

При инициализации проверим и если вдруг нету ее базы данных создать.

BOOL CBiblioDlg::OnInitDialog()
{
	......
	// TODO: Add extra initialization here
	try
	{
		// при ошибке исключение
		AfxDaoInit( );
	}
	catch(...)
	{
		AfxMessageBox("Error Dao Init");
		return FALSE;	// не удалось создать диалог
	}

	CDaoDatabase db;
	try
	{
		db.Open(DATABSENAME);	// попытка открытия
	}
	catch(...)
	{
		try
		{
		db.Create(DATABASENAME);	// может вернуть исключение
		}
		catch(...)
		{
			AfxMessageBox("Error Create Database");
			return FALSE;	// не удалось создать диалог
		}
	}

	if (!db.IsOpen()) return FALSE; 
	db.Close(); 

	return TRUE;  // return TRUE  unless you set the focus to a control
}

Загрузить проект | | |
Автор Каев Артем.
[AD]