- •О.С. Зеленський
- •Розділ 9. Структура створення додатків
- •9.1. Загальна структура додатків
- •9.2. Додатки без використання архітектури «Документ-вид»
- •9.2.1. Приклад додатку реєстрації wnd-класу вікна
- •9.2.2. Створення та видалення дочірніх вікон без використання архітектури «Документ-Вид»
- •9.2.3. Створення дочірніх вікон без використання архітектури «Документ-Вид» (переключення вікон з використанням функції ShowWindow)
- •9.3. Архітектура «Документ-Вид»
- •Idr_mainframe формат строкового ресурсу.
- •9.3.1. Приклад додатку з використанням архітектури «Документ-Вид»
- •9.3.2. Види у архітектурі «Документ-Вид»
- •9.3.3. Створення видів у архітектурі «Документ-Вид» (переключення видів з використанням функції ShowWindow)
- •9.3.4. Робота з документами та видами на прикладі додатку SingleTemplate
- •9.4. Додатки mdi, робота з шаблонами
- •9.4.1. Приклад додатку mdi з одним шаблоном
- •9.4.2. Приклад додатку mdi з декількома шаблонами
- •Контрольні питання
- •Розділ 10. Робота з базами даних з використанням об'єктів ado
- •10.1.1. Ініціалізація об'єктів com з використанням директиви #import
- •10.1.2. Підтримка класів сом
- •10.2. Об'єкт Connection
- •10.3. Об'єкт Command
- •10.4. Об'єкт Recordset
- •10.5. Об'єкт Field і колекція Fields
- •10.6. Об'єкт Error і колекція Errors
- •10.8. Коротка характеристика структури мови sql
- •10.9. Синтаксис оператора вибору Select
- •10.10. Приклад програмування об'єктів ado
- •10.11. Опис розробленого навчального пакету ado6 для роботи з базами даних access та MySql
- •Int tip_bd; // тип бд 1- ms access, 2- MySql, 3 - xml
- •Void Connect_Baza(cString str);
- •Void ErrMessage(_com_error &ce);
- •If(pConn.CreateInstance("adodb.Connection"))
- •If(pRecordset.CreateInstance("adodb.RecordSet"))
- •Void cAdo6Doc::ErrMessage(_com_error &ce)
- •Void cAdo6Doc::OnMsaccess()
- •Void cAdo6Doc::OnMysql()
- •Void cAdo6Doc::OnXmlRead()
- •Void cAdo6Doc::Connect_Baza(cString str)
- •Virtual void DoDataExchange(cDataExchange* pDx);
- •Void cAdo6Dlg::DoDataExchange(cDataExchange* pDx)
- •Void cAdo6Dlg::Struct_MySql()
- •Void cAdo6Dlg::OnSelchangeListBaza()
- •Void cAdo6Dlg::OnVibor_bd()
- •Void cAdo6Dlg::AccessOpen()
- •Void cAdo6Dlg::xmlOpen()
- •Void cAdo6Dlg::Structura_bd()
- •Void cAdo6Dlg::OnSelchangeListTab()
- •Void cAdo6Dlg::show(int kod, int kod_bd)
- •Void cAdo6Dlg::Recordset_Baza(cString str)
- •Void cAdo6Dlg::OnClose()
- •10.11.2. Формування списку бд (MySql), відкриття бази даних (ms access), відкриття xml-файлу, формування списку таблиць (MySql і ms access) та полів (MySql, ms access, xml)
- •Void cAdo6Dlg::OnSelchangeListTab()
- •1. Обрану таблицю необхідно брати в зворотні лапки "`", щоб виключити помилку в тому випадку, якщо в імені таблиці будуть зустрічатися пробіли.
- •10.11.3. Робота з sql-запитами
- •Void cAdo6Dlg::OnZapros_Select()
- •If (str_query.Mid(0,6).Compare("select"))
- •If(!baza.Left(3).Compare("otl") &&
- •Void cAdo6Dlg::Recordset_Baza(cString str)
- •Void cado6Dlg::OnZapros_Make()
- •Vr_zap.Format(" Запрос выполнен за %f сек ",conec - nach);
- •10.11.4. Видалення, сортування, пошук, фільтрація, оновлення набору записів
- •Void cado6Dlg::OnZapis_Delete()
- •Void cado6Dlg::OnCheck_Sort()
- •Void cado6Dlg::OnFind()
- •0L,adSearchForward,bb);
- •Void cado6Dlg::OnFilter()
- •Void cado6Dlg::OnVozvrat()
- •10.11.5. Переходи по записах
- •Void cado6Dlg::OnButtonFirst()
- •Void cado6Dlg::OnButtonLast()
- •Void cado6Dlg::OnButtonLeft()
- •Void cado6Dlg::OnButtonRight()
- •Void cado6Dlg::OnButtonRecno()
- •Void cado6Dlg::OnButtonPgup()
- •Void cado6Dlg::OnButtonPgdn()
- •Void cado6Dlg::OnButtonBookmark()
- •10.11.6. Запис даних до xml-файлу
- •Void cAdo6Dlg::OnButtonSave()
- •10.11.7. Кнопки, призначені тільки для роботи з otl_tab
- •Void cado6Dlg::OnZapis_Add1()
- •Void cado6Dlg::OnZapis_Add2()
- •Void cado6Dlg::OnZapis_Update1()
- •Void cado6Dlg::OnZapis_Update2()
- •Void cado6Dlg::OnFormir_bd()
- •Void cAdo6Dlg::OnValues_Fields()
- •10.12. Використання у якості джерела даних електронної таблиці Excel
- •Контрольні питання
- •Завдання
- •Розділ 11. Програмування для інтернет
- •11.1. Створення броузера
- •11.3. Використання протоколу http
- •If ((pInternetSession)
- •11.4. Використання протоколу ftp
- •Контрольні питання
- •Розділ 12. Створення елементів activex
- •12.1. Створення елементів ActiveX
- •Invalidate();
- •12.2. Тестування елемента ActiveX
- •12.4. Створення елемента ActiveX на базі стандартних елементів
- •12.5. Відображення елементів ActiveX
- •Контрольні питання
- •Розділ 13. Налагодження програм
- •Int data[5];
- •Invalidate();
- •13.3. Установка точки переривання
- •13.2. Покрокове виконання програми
- •13.4. Перевірка значень змінних під час виконання програми
- •Контрольні питання
- •Список літератури
- •Додатки
Контрольні питання
1. Яким чином відбувається ініціалізація об’єктів COM з використанням директиви #import?
2. Розкрийте сутність типів даних COM (_variant_t, _bstr_t).
3. Яким чином відбувається створення об’єкту Connection?.
4. Для чого використовується метод Execute() об’єкту Connection.?
5. Розкрийте сутність роботи з транзакціями.
6. З якою метою використовується функція GetState() для COM-об'єктів ADO?
7. Призначення, створення та використання об’єкту Recordset.
8. Розкрийте сутність створення об’єкту Recordset з використанням об’єкта Connection.
9. Розкрийте сутність створення об’єкту Recordset з використанням об’єкта Recordset.
10. Які типи курсорів об'єкту Recordset Ви знаєте?
11. Яким чином відбувається переміщення по записам об’єкта Recordset?
112. Яким чином відбувається видалення записів у об’єкті Recordset?
13. Яким чином відбувається додавання записів у об’єкті Recordset?
14. Яким чином відбувається оновлення записів у об’єкті Recordset?
15. Розкрийте сутність прив’язки Recordset до елементу керування DataGrid.
16. Яким чином відбувається сортування та фільтрація записів у об’єкті Recordset?
17. Яким чином відбувається пошук записів у об’єкті Recordset?
18. Розкрийте сутність колекції об’єктів Fields, її методи та властивості.
19. Розкрийте сутність, методи та властивості об’єкту Field.
20. Яким чином відбувається обробка помилок в ADO?
Завдання
Вибравши варіант індивідуального завдання, необхідно розробити програмне забезпечення з використанням технології ADO для обробки баз даних.
Перелік варіантів завдань:
Варіант 1
Має місце таблиця з числовим полем. Знайти середнє арифметичне значення по цьому полю.
Варіант 2
Є таблиця з числовим полем. Знайти максимальне і мінімальне значення по цьому полю.
Варіант 3
Є таблиця з числовим полем. Існують записи з однаковими значеннями. Знайти кількість записів з різними значеннями.
Варіант 4
Має місце таблиця з числовим полем. Знайти кількість записів, в яких значення в числовому полі = 55.
Варіант 5
Створити RecordSet, об'єднуючий поля основної таблиці і довідника.
Варіант 6
Є таблиця з числовим полем. Знайти суму значень з 5 по 10 запис.
Варіант 7
Є таблиця з числовим полем. Знайти кількість додатних та від’ємних значень в записах цього поля.
Варіант 8
Є таблиця з числовим полем. Визначити найбільше значення серед першого та останнього запису.
Варіант 9
У таблиці видалити записи по заданій умові.
Варіант 10
У таблиці оновити записи по заданій умові.
Варіант 11
Організувати додавання записів в таблицю.
Варіант 12
Змінити значення полів по-перших 2-х записах.
Варіант 13
Є таблиця з числовим полем. Переписати в масив перші 10 записів числового поля.
Варіант 14
Є таблиця з числовим полем. Знайти число записів із значеннями, кратним 5.
Варіант 15
Є таблиця з текстовим полем. Додати до значень записів символ “a”.
Варіант 16
Є таблиця з логічним полем. Встановити true в парних записах і false в непарних.
Варіант 17
Підрахувати % відмінників в таблиці з числовим полем “Успішність”.
Варіант 18
Є таблиця з текстовим полем. Знайти найдовше значення в цьому полі.
Варіант 19
Є таблиця з текстовим полем. Видалити останній символ в кожному записі цього поля.
Варіант 20
Є таблиця з текстовим полем. Знайти сумарну кількість символів в цьому полі.
Варіант 21
Є таблиця з 2-ма текстовими полями. Поміняти їх значення місцями.
Варіант 22
Вивести найдовше ім’я таблиці в БД.
Варіант 23
Сформуйте SQL-запит по таблиці Authors з виведенням авторів книг, прізвища яких починаються на певну літеру.
Варіант 24
Сформуйте SQL-запит, який об’єднає записи із таблиць Titles та Publishers БД Biblio при збігу поля PubId. У повертаємому наборі вивести назви книг та прізвища видавців. Зробити це двома засобами: використовуючи оператор WHERE та INNER JOIN.
Варіант 25
Написати SQL-запит створення нової таблиці Titles_New на основі трьох полів таблиці Titles: Title, Year PubId. У даній таблиці повинні бути тільки ті книги, рік випуску яких перевищує 1992 рік.
Варіант 26
За допомогою SQL-запиту створити таблицю Titles_New, в якій зберегти дані таблиці Titles. Потім, за допомогою SQL-запиту на видалення, видалити ті данні нової таблиці, рік випуску книжок по яким, менше ніж 1995 рік.
Варіант 27
Створити по таблиці Titles SQL-запит на оновлення вибраної групи записів.
Варіант 28
Використовуючи SQL-запит, виконайте пошук книг по прізвищу її автора.
Варіант 29
Використовуючи SQL-запит, виконайте пошук книг по заданому року видавництва.
Варіант 30
Використовуючи SQL-запит, виконайте пошук книг за полем ISBN.
Варіант 31
Використовуючи SQL-запит за вибраною книгою виконайте пошук її авторів.
Варіант 32
Сформуйте зведений (загальний) SQL-запит, у якому перше поле – назва книги; друге – її ISBN; третє – автор; четверте – рік видавництва; п’яте – назва компанії. Причому сортування повинно виконуватись по зростанню назв книг.
Варіант 33
За допомогою SQL-запиту створити нову таблицю Authors_New з даними таблиці Authors. Потім, у новій таблиці видалити авторів на першу літеру, яку вводить користувач.
Варіант 34
На основі наступних даних: перше поле – назва книги; друге – її ISBN; третє – автор; четверте – рік видавництва; п’яте – назва компанії, створити таблицю Titles_All (SQL-запит на створення таблиці).
Варіант 35
За допомогою SQL-запиту створити таблицю Titles_New, в якій зберегти дані таблиці Titles. Потім, за допомогою SQL-запиту на видалення, видалити ті данні нової таблиці, рік випуску книжок по яким – це 1992 рік.