Забезпечення видалення, редагування, додавання записів в БД



Мы поможем в написании ваших работ!


Мы поможем в написании ваших работ!



Мы поможем в написании ваших работ!


ЗНАЕТЕ ЛИ ВЫ?

Забезпечення видалення, редагування, додавання записів в БД



Додавання і видалення записів у таблиці бази даних реалізуються досить просто завдяки існуванню в Visual C + + класів CRecordView і CRecordset, що надають всі необхідні методи для виконання цих стандартних операцій. Необхідно буде додати в додаток кілька команд меню (див. практичну роботу по створенню меню). Для додавання до додатка команд Add (Додати) і Delete (Видалити) виконайте наступні дії:

1. Клацніть на корінці вкладки ResourceView, відкрийте папку Menu і зробіть подвійний Клацання на меню IDR_MAINFRAME. На екрані розкриється вікно редактора меню.

2. Клацніть у меню Record і тим самим відкрийте його, а потім клацніть на порожній області в нижній частині цього меню. Виберіть команду View \ Properties і перемістіть розкрилося діалогове вікно Properties на підходяще для нього місце.

3. У полі ID введіть значення ID_RECORD_ADD, а в полі Caption введіть значення & Add Record. У результаті в меню Record буде додана нова команда.

4. У наступний порожній елемент меню внесіть команду видалення, що має ідентифікатор ID_RECORD_DELETE (поле ID) та заголовок Delete Record (поле Caption), як показано на ріс.7.5.

 

Рис. 7.5 - Додавання в меню команд додавання і видалення записів

Далі необхідно додати на панель інструментів пару нових піктограм (Додаток Б) і пов'язати з командами меню. Виконайте наступні дії:

1. У дереві ресурсів у вікні ResourceView відкрийте папку Toolbar і зробіть подвійне клацання на ідентифікаторі IDR_MAINFRAME. Панель інструментів додатка буде відображена у вікні редактора ресурсів.

2. Клацнувши на порожній піктограмі панелі інструментів, виберіть її, а потім за допомогою інструментів графічного редактора намалюйте на ній блакитний знак "плюс", як показано на рис. 7.6.

3. Зробіть подвійне клацання на новій піктограмі панелі інструментів. Розкриється вікно властивостей Toolbar Button Properties. У списку ID виберіть значення ID_RECORD_ADD.

4. Знову виділіть порожню піктограму панелі інструментів і намалюйте на ній червоний знак "мінус", надайте піктограмі ідентифікатор ID_RECORD_DELETE аналогічно "плюса". Перетягніть піктограми додавання і видалення лівіше піктограми довідки, поміченої знаком питання.

Рис. 7.6 - Додавання піктограми на панель інструментів

Тепер, коли в меню вже додані нові команди і на панель інструментів поміщені відповідні піктограми, необхідно сформувати програмний код, який буде обробляти командні повідомлення, що посилаються, коли користувач клацає на піктограмі або вибирає пункт меню.

Так як в нашому додатку з базою даних пов'язаний клас уявлення, в ньому слід організувати перехоплення цих повідомлень. Виконайте наступні операції:

1. Розкрийте вікно ClassWizard і виберіть у ньому вкладку Message Maps.

2. У списку Class Name виберіть CDBView, а в списку Object IDS - значення ID_RECORD_ADD, після чого зробіть подвійне клацання на значенні COMMAND в списку Messages. Розкриється діалогове вікно Add Member Function.

3. Клацніть на кнопці ОК, прийнявши для нової функції ім'я, запропоноване за замовчуванням. Ім'я нової функції з'явиться в списку Member Functions в нижній частині вікна ClassWizard.

4. Аналогічним чином додайте метод для обробки команди ID_RECORD_DELETE. Закрийте вікно майстра СIassWizard, клацнувши на кнопці ОК.

5. У вікні ClassView, двічі клацнувши на елементі CDBView, відкрийте файл DBView.h. В оголошенні класу додайте наступні рядки в розділ Attributes:

protected:

BOOL m_bAdding;

 

6. У вікні ClassView зробіть подвійне клацання на конструкторі класу CDBView і додайте наступний рядок в кінець цієї функції:

m_bAdding = FALSE;

7. Зробіть подвійне клацання на функції OnRecordAdd () і відредагуйте її текст так, як показано в лістингу:

Лістинг функції CDBView: :OnRecordAdd():

Void CDBView::OnRecordAdd()

{

m_pSet->AddNew();

m_bAdding = TRUE;

CEdit* pCtrl = (CEdit*)GetDlgltem(IDC_USERID);

int result = pCtrl->SetReadOnly(FALSE);

UpdateData(FALSE);

}

8. У вікні ClassView клацніть правою кнопкою миші на елементі CDBView і виберіть в розкрився контекстному меню команду Add Virtual Function.

У лівому списку виберіть значення OnMove, як показано на рис. 7.7, а потім клацніть на кнопці Add and Edit. У результаті в клас буде додана функція і можна буде негайно отредактіроват заготівлю її тексту.

9. Відредагуйте функцію OnMove () так, щоб вона містила текст програми, наведений у лістингу.

 

Рис. 7.7 - Перевизначення функції OnMove

Лістинг функції CDBView: :OnMove():

BOOL CDBView::OnMove(UNIT nIDMoveCommand)

{

if (m_bAdding) {

m_bAdding = FALSE;

UpdateData(TRUE);

if (m_pSet->CanUpdate())

m_pSet->Update();

m_pSet->Requery();

UpdateData(FALSE);

CEdit* pCtrl = (CEdit*)GetDlgltem(IDC_USERID);

pCtrI->SetReadOnIy(TRUE);

return TRUE;

} else

return CRecordView::OnMove(nIDMoveCommand);

}

10. Зробіть подвійне клацання на функції OnRecordDelete () і відредагуйте її так, щоб її код відповідав наведеному нижче лістингу. Пояснення до цього тексту будуть дані в наступному розділі.

Лістинг функції СDBView :: OnRecordDelete ():



Последнее изменение этой страницы: 2016-12-12; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.239.56.184 (0.007 с.)