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 руб./мес


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




 39 - Класс для передвижения по Recordset / DAO / Visual C++

Шаг 39 - Класс для передвижения по Recordset

Прочитав предыдущие шаги вы можете увидеть, что в шагах "Шаг 36 - Проект библиотека - Диалоговое окно - Разделы", "Шаг 34 - Проект библиотека - Диалоговое окно - Авторы - Кнопки и сохранение данных" нужно постоянно кодировать одни и те-же действия. Мол, вперед пошли, назад, в начало записей. Давайте сделаем класс, в котором будет весь этот код. И нам при кодировании нужно будет меньше работать. Назовем этот класс CDaoNavigator. В этот класс нужно будет передать указатель на набор записей.

class CDaoNavigator  
{
public:
	void SetRecordset(CDaoRecordset *cRecord);	// установить набор записей
	CDaoNavigator();
	virtual ~CDaoNavigator();	
private:
	CDaoRecordset * m_pRecord;		    	// указатель на набор записей
};


void CDaoNavigator::SetRecordset(CDaoRecordset *cRecord)
{
	m_pRecord=cRecord;
}

Теперь осталось, создать функции вперед назад, на первую, на последнею.

class CDaoNavigator  
{
public:
	void OnButtonNext();		// на следующую
	void OnButtonFirst();		// на первую
	void OnButtonPrev();		// на одну назад
	void OnButtonLast();		// на последнюю
	void SetRecordset(CDaoRecordset *cRecord);	// установить набор записей
	CDaoNavigator();
	virtual ~CDaoNavigator();	
private:
	CDaoRecordset * m_pRecord;	   	// указатель на набор записей
};

Реализуем:

void CDaoNavigator::OnButtonLast()
{
	m_pRecord->MoveLast();		// на последнюю
}

void CDaoNavigator::OnButtonPrev()
{
	m_pRecord->MovePrev();		// назад
	if (m_pRecord->IsBOF())
		m_pRecord->MoveNext();	//если вышли, то вернуть вперед
}

void CDaoNavigator::OnButtonFirst()
{
	m_pRecord->MoveFirst();		// на последнею
}

void CDaoNavigator::OnButtonNext()
{
	try
	{ 
		m_pRecord->MoveNext();	// вперед
		if (m_pRecord->IsEOF())
			throw CString("");	// если это последняя, то новая нужна
	}
	catch(...)			// если последняя то создать новую
	{
		m_pRecord->AddNew();	// новая
		m_pRecord->Update();	// подтвердить
		m_pRecord->MoveLast();	// на последнюю
	}
}

Вот и все. Теперь этот класс можно использовать в любом проекте.

В проекте находится класс CDaoNavigator упaкованный для использования в Component Gallery как ogx файл.


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