
- •5.05150104 "Дизайн друкованої продукції"
- •Урок 8. Запис і читання даних
- •Робота з ascii -файлами
- •Мал. 8.1. Ascii - файл з роздільниками.
- •Послідовний доступ
- •Мал. 8.2. Зразок послідовного файлу.
- •Мал. 8.3. Перегляд результатів.
- •Довільний доступ
- •Мал. 8.4. Запис в текстовому файлі.
- •Двійковий доступ
- •Проста програма шифрування
- •Мал. 8.5. Форма для програми шифрування.
- •Мал. 8.6. Стандартне діалогове вікно.
- •Елементи даних
- •Використання елементу даних
- •Властивості елементу даних
- •Мал. 8.8. Властивості елементу даних
- •Анатомія бази даних
- •Створення баз даних в Visual Data Manager
- •Мал. 8.9. Вікно бази даних із розширеними властивостями
- •Створення таблиці
- •Конструювання таблиці
- •Мал. 8.10. Діалогове вікно Table Structure.
- •Створення полів
- •Мал. 8.11. Діалогове вікно AddField.
- •Введення даних
- •Створення запиту
- •Мал. 8.12. Діалогове вікно Query Builder.
- •Мал. 8.13. Результати запиту.
- •Первинні ключі
- •Лічильники
- •Числові поля
- •Грошові поля
- •Логічні поля
- •Поля Memo
- •Поля дати/часу
- •Зміна таблиці
- •Технологія ado (ActiveX Data Objects)
- •Мал. 8.14. Моделъ ado.
- •Використання елементу даних ado
- •Мал. 8.15. Діалогове вікно сторінок властивостей елементу даних ado
- •Puc. 8.16. Вибір провайдера
- •Мал. 8.17. Вибір файлу бази даних
- •Мал. 8.18. Завдання властивості RecordSource
- •Використання об'єктів підключення і набору записів ado
- •Puc. 8.19. Створення посилання на бібліотеку типів ado
- •Додавання записів
- •Оновлення записів
- •Видалення записів
- •Що нового ми дізналися?
- •9 Урок. Друкування
- •Виведення даних на друкування
- •Метод Print
- •Перегляд значень у вікні безпосередніх обчислень
- •Перегляд помилок у вікні безпосередніх обчислень
- •Мал. 9.1. Вікно безпосередніх обчислень з інформацією про помилку.
- •Виправлення помилки
- •Метод PrintForm
- •Колекція Printers
- •Мал. 9.2. Виведення вмісту колекції Printers. Використання Crystal Reports в Visual Basic
- •Мал. 9.4. Режим конструктора в Crystal Reports Установка Crystal Reports Pro
- •Створення звіту
- •Мал. 9.6. Зв'язки між таблицями
- •Мал. 9.7. Вкладка Fields
- •Puc. 9.8. Вибір поля для сортування
- •Мал. 9.9. Вкладка Total Мал. 9.10. Фільтрація записів в звіті
- •Мал. 9.11. Вибір стилю звіту
- •Мал. 9.12. Готовий звіт
- •Мал. 9.13. Режим конструювання
- •Використання звіту в додатку
- •Мал. 9.14. Звіт в режимі конструювання. Мал. 9.15. Діалогове вікно Property Pages для Crystal Reports 4.6.
- •Мал. 9.16. Додавання елементу Crystal Report.
- •Мал. 9.17. Виведення звіту з додатка. Друкування початкового тексту програми
- •Мал. 9.18. Діалогове вікно Print. Діалогове вікно Print
- •Перегляд результатів
- •Розшифровка лістингу
- •Що нового ми дізналися?
Первинні ключі
Первинним ключем називається величина, що однозначно ідентифікує будь-який запис в таблиці, наприклад номер деталі в складській базі даних. Присутність первинного ключа в таблиці прискорює такі операції, як пошук, сортування і фільтрація. Більше того, якщо ви захочете зв'язати інформацію в двох таблицях, одна з них зобов'язана мати первинний ключ. Жодне поле таблиці BookList не може використовуватися як первинний ключ. З першого погляду на вміст таблиці видно, що імена і прізвища авторів повторюються. Наприклад, в таблиці є чотири записи з прізвищем Повис і дві - з прізвищем Радек. Спочатку виникає бажання призначити первинним ключем назва книги, проте в магазині можуть знаходитися дві книги з однаковими назвами. Наприклад, в книжковому магазині можуть з'явитися два екземпляри книги Повиса "Мистецтво щастя". Крім того, існує ще один аргумент проти вибору назви книги як первинного ключа. Для рідкісних і особливо цінних книг (таких, як книги Повиса) необхідно зберігати окремий запис для кожного екземпляра (на відміну, скажемо від сучасних книг з комп'ютерів), оскільки колекціонерів цікавить інформація про видання і стан кожного екземпляра. У нашому прикладі очевидним кандидатом на роль первинного ключа є ISBN (International Standard Book Number - міжнародний стандартний номер, що однозначно ідентифікує кожну опубліковану книгу). На жаль, у продажу можуть знаходитися давно наДрукуванняовані книги, Hofepa ISBN, що не мають. Поле ISBN для таких книг не можна залишити порожнім, оскільки два порожні поля суперечать правилу, згідно з яким значення первинного ключа повинно бути унікальним для кожного запису. Вихід з ситуації полягає в створенні спеціального поля-лічильника.
Лічильники
Лічильники мають дві основні переваги: вони дозволяють вибрати первинний ключ за відсутності інших очевидних кандидатів і їх значення автоматично збільшується на 1 для кожного чергового запису. Останнє виявляється особливо зручним для автоматичної генерації послідовних номерів деталей, рахунків і т. д.
Щоб додати поле-лічильник в Visual Data Manager, слід створити поле, вибрати для нього тип Long і встановити флажокАи1о Increment. Потім створіть індекс, Встановіть для лічильника прапорець Required і призначте лічильник первинним ключем (Primary Key). B результаті кожен запис матиме унікальне значення поля лічильника.
У таблиці BookList лічильник не лише представляє розумну альтернативу номеру ISBN, але і створює унікальний ідентифікатор для кожної книги (у тому числі і тих, у яких відсутній ISBN). Полю-лічильнику можна присвоїти ім'я BOOK CODE. Інформація, що міститься в нім, може здатися умовною: навряд чи вона матиме який-небудь сенс для клієнтів і працівників магазину. Звичайно, деякі покупці можуть використовувати це значення при замовленні книг. У реальній ситуації в запис слід було б включити номер ISBN для нових книг, навіть не дивлячись на те, що це поле не можна використовувати як первинний ключ. Проте для Access це поле виглядає цілком осмисленим - воно помітно прискорює виконання запитів і інших операцій з таблицею (прискорення запитів помітне лише для великих таблиць, а при роботі з одиничними записами воно не має практичного значення). Код книги використовується і при зв'язуванні таблиць. Первинний ключ слід вибрати якомога раніше, ще в режимі конструювання таблиці - переваги стануть очевидними із зростанням об'єму даних.