Ноу Інти, лекція, блоки

Створення небазових блоків

Небазовий, або, як його ще називають, керуючий (Control Block), блок створюється набагато простіше, так як не вимагає джерела даних і може бути створений без прив'язки до бази даних. Для створення небазового блоку даних досить виконати кілька дій:

  1. Перебуваючи в навігаторі об'єктів, виберіть вузол Data Blocks і натисніть кнопку "Create" для появи вікна "New Data Block" (рис. 7.9).

Ноу Інти, лекція, блоки


Мал. 7.9. Вікно "Створити новий блок"

  • У цьому вікні є два перемикача, один з яких пропонує нам створити блок даних за допомогою майстра блоків даних ( "Use the Data Block Wizard"), а інший - створити блок даних вручну ( "Block a new data block manually"). Виберіть опцію "Block a new data block manually" і натисніть "OK".
  • Після того як ви підтвердите свій вибір, в навігаторі об'єктів створиться блок даних з ім'ям за умовчанням BLOCKXX, де XX - це порядковий номер, який Forms привласнює кожному об'єкту при створенні.
  • властивості блоку

    Тепер, коли ми навчилися створювати блок даних, можна перейти до розгляду його атрибутів (властивостей). Атрибути блоку - це його невід'ємна частина, тому дуже важливо знати їх призначення. Неправильне налаштування атрибутів може привести до різних критичних ситуацій, таким як падіння продуктивності, неправильна робота або виникнення виняткових ситуацій. Якщо ви будете знати більшість атрибутів блоку, ви зможете не тільки підвищити продуктивність вашого додатки, але і позбавити себе від написання зайвого коду.

    Зараз ми ознайомимося з усіма властивостями блоку даних, а найважливіші розглянемо більш докладно (рис. 7.10).

    Ноу Інти, лекція, блоки


    Мал. 7.10. Таблиця властивостей блоку даних

    1. Вкладка General (Загальні)
      • Name - це властивість визначає внутрішньо ім'я вашого блоку, яке ви будете використовувати для звернення до нього в своїх програмах.
      • Subclass Information - при виборі цього властивості запускається вікно Subclass (рис. 7.11).

    Ноу Інти, лекція, блоки


    Мал. 7.11. Subclass Information (Інформація про підкласі)

    У цьому вікні ви можете вибрати клас властивостей або подоб'екти для блоку. Під подоб'екти тут мається на увазі блок даних. Щоб призначити блоку подоб'екти, потрібно:
    • встановити перемикач в Object - цим ви вказуєте, що в якості підкласу буде обраний об'єкт;
    • перейти в поле Module і вибрати ім'я модуля, в якому знаходиться подоб'екти. Щоб в поле Module з'явився список доступних модулів, потрібно, щоб вони були відкриті;
    • після того як модуль обраний, в поле Object Name стають доступними його об'єкти. Виберіть потрібний об'єкт і натисніть кнопку "OK".

    Після цього блок матиме вигляд і структуру обраного підоб'єкту.

    Щоб призначити блоку клас властивостей, потрібно виконати ті ж дії, що і вище, попередньо встановивши перемикач на Property Class.

    Примітка. блок, в якому було задіяно властивість "Subclass Information", відрізняється від інших тим, що на іконі блоку і всіх його елементах з'являються червоні стрілки.

  • Вкладка Navigation (Переміщення)
    • Navigation Style - це властивість визначає стиль переміщення:
      • Та ж запис - цей параметр означає, що при переміщенні на наступне або попереднє поле запис не змінюється і при повторному поверненні в це поле статус поля і блоку не змінюється. Це значення Forms ставить за замовчуванням при створенні блоку.
      • Змінити запис - цей параметр означає, що при переміщенні на інше поле його статус переходить в режим поновлення або Update.
      • Змінити блок даних - цей параметр визначається точно так же, як і попередній, тільки з тією різницею, що статус Update приймає блок.
    • Previous Navigation Data Block - в цьому полі ви можете вказати, який блок буде позначений як попередній блок при переміщенні. Наприклад: у вас в Блоке1 цей параметр має значення Блок3; тоді в ситуації, якщо ви перейшли з Блока2 на Блок3 і захочете повернутися на попередній блок, то ви повернетеся НЕ Блок3, а на Блок2.
    • Next Navigation Data Block - це значення має таке ж визначення, як і попереднє, з тією лише різницею, що навігація здійснюється на наступний блок, а не попередній.
  • Вкладка Records (Записи)
    • Current Record Visual Attribute Group (група атрибутів візуалізації поточного запису) - це властивість за замовчуванням може приймати два типи значення: і Default. Якщо ж ви створили свою групу атрибутів, то, відповідно, і вона буде додана в список можливих значень. При створенні блоку це значення дорівнює .
    • Query Array Size - визначає максимальну кількість записів, одночасно обирається Forms'ом. Маленьке значення параметра збільшує час відгуку форми, а велике значення зменшує повний час обробки, роблячи меншу кількість запитів до БД.
    • Number of Records Buffered - визначає мінімальну кількість рядків, буферизованих в пам'яті під час виконання запиту в блоці. Всі інші записи буферизуются в тимчасовому файлі на диску клієнта. Велике значення збільшує продуктивність роботи форми зі значними обсягами даних.
    • Number of Records Displayed - в цьому полі вказується кількість відображуваних одночасно записів в блоці. Якщо значення дорівнює "0" або "1", то в блоці відображається лише один запис; якщо, наприклад, цього полю привласнити значення "2", то в блоці буде виведено одночасно два записи, причому їх елементи - item_text продублюйте і створяться автоматично самим Forms'ом.
    • Query all Records - визначає, чи повинні вибиратися всі записи, що задовольняють критерію запиту, або буде вибрано кількість записів, рівне параметру Query Array Size блоку. У переважній більшості випадків при роботі з великими обсягами даних в формі не слід встановлювати його в "Yes". Значення "Yes" зазвичай використовується в формах, які використовують обчислення підсумків.
    • Record Orientation - визначає орієнтацію записи. Приймає два значення - "по вертикалі" і "по горизонталі", причому значення "по вертикалі" є значенням за замовчуванням.
    • Single Record (одинична запис) - приймає значення "Yes" і "No". За замовчуванням Forms ставить це значення в "No", що дає можливість відображати більше одного запису.
  • Update Changed Columns Only (оновити тільки змінювані стовпці) - тут начебто назва говорить сама за себе, тобто задається при оновленні задається команда оновити всі рядки (якщо значення цієї властивості "Yes") або оновити тільки змінені рядки (якщо значення цієї властивості " No "); але використання цього параметра дуже впливає на продуктивність вашого застосування. Опис і рекомендації ви знайдете в розділі "Як відбувається оновлення в Oracle Forms 6i".
  • Enforce Column Security (забезпечити захист стовпчика) - цей параметр відповідає за забезпечення привілеїв на оновлення і вставку для стовпця. За замовчуванням ця властивість має значення "No".
  • Maximum Query Time (максимальний час запиту) - тут ви вказуєте максимальний час на очікування виконання запиту до переривання. За замовчуванням воно дорівнює "0", тобто час виконання запиту до переривання необмежено.
  • Maximum Record Fetched (максимум обраних записів) - цей параметр відповідає за максимальну кількість обраних рядків, після якого можна перервати запит. За замовчуванням це значення дорівнює "0".
  • Вкладка Visual Attributes (Візуальні атрибути)
    • Visual Attribute Group (група атрибутів візуалізації) - це група властивостей, які ви можете призначити свого об'єкту, в даному випадку блоку. за замовчуванням це значення Default.
    • Character Mode Logical Attribute (логічний атрибут символьного режиму) - тут ви задаєте базисні атрибути пристрою символьного режиму.
    • White on Black - в цю властивість ви вказуєте, як об'єкти будуть відображатися на монохромному растровом дисплеї. За замовчуванням це значення <Не указано>, інші два параметри - "Так" і "Ні", де "Так" означає, що об'єкт відображається білим кольором на чорному тлі.
  • Вкладка Color (Колір)
    • Foreground Color (колір відображаються на екрані символів) - задає колір для переднього плану об'єкта, в нашому випадку це елементи тексту. При виборі цієї властивості запускається вікно "Набір шаблонів зафарбовування". Для цього запустіть вікно з палітрою зафарбовування, потім виберіть потрібний вам колір і клацніть по ньому, після чого вікно автоматично закриється і в поле цієї властивості відобразиться код обраного вами кольору.
    • Background Color (колір фону) - тут ви вказуєте колір фону (фонової області). Зафарбування фону виконуватися точно так же, як і в Foreground Color.
    • Fill Pattern (шаблон заповнення) - тут ви вибираєте малюнок (орнамент) для заповнення об'єкта, причому колір малюнка буде відповідати кольору відображуваних символів, а колір фону - фонової частини.
  • Вкладка Character Mode (Символьний режим)
    • Listed in Data Block Menu (перераховано в меню блоку даних) - визначає, чи повинен блок бути вказано в меню блоків даних символьного режиму.
    • Data Block Description - в цьому полі ви можете дати опис блоку даних, яке буде використано як в меню блоків даних.
  • Вкладка International (Міжнародний)
    • D irection (напрямок) - напрям розмітки для двонапрямлених об'єктів розмірів, використовується в "NLS -Додатків (National Language Standart)". Здається одним з трьох можливих параметрів: "За замовчуванням", "Зліва направо", "Справа наліво". Перше значення є значенням за замовчуванням, яке задає Forms цій властивості при створенні блоку даних.

    Налаштування деяких властивостей блоку

    У цьому розділі ми розглянемо властивості блоку, настройки яких впливають на продуктивність програми. Коли ваша система досягне величезних розмірів і в ваших таблицях буде не одна тисяча записів, ви почнете відчувати падіння продуктивності форми, а саме:

    • збільшення часу виконання запитів;
    • затримку обчислення підсумків;
    • збільшення розмірів тимчасових файлів, що зберігають буферізованние дані.

    На рівні блоку ви можете управляти такими властивостями, які впливають на продуктивність роботи форми:

    • Query All Records. Визначає, чи повинні вибиратися всі записи, що задовольняють критерію запиту, або буде вибрано кількість записів, рівне параметру Query Array Size блоку. У переважній більшості випадків при роботі з великими обсягами даних в формі не слід встановлювати це значення на "Yes". "Yes" зазвичай застосовується в формах, де відбувається обчислення підсумків.
    • Query Array Size. Визначає максимальну кількість одночасно обираних записів. Маленьке значення параметра збільшує час відгуку форми, а велике значення зменшує повний час обробки, роблячи меншим кількість запитів до БД.
    • Number of Records Buffered. Визначає мінімальну кількість рядків, буферизованих в пам'яті під час виконання запиту в блоці. Всі інші записи буферизуются в тимчасовому файлі на диску клієнта. Велике значення збільшує продуктивність роботи форми зі значними обсягами даних.
    • DML Array Size. Визначення максимального розміру масиву для вставки, оновлення та видалення рядків в БД в один момент часу. Великий розмір зменшує час обробки транзакцій, знижуючи мережевий трафік з БД, але вимагає більшої кількості пам'яті. Оптимальний розмір - кількість рядків, змінюване користувачем в одній транзакції. Існують деякі обмеження на використання великих значень цього параметра.
    1. Зайдіть в SQL * Plus або будь-яке інше доступне GUI-засіб, наприклад, Sql Developer.
    2. Створіть таблицю Test:
  • Повторіть запит на вибірку всіх записів і подивіться на план виконання запиту - він не змінився, оптимізатор все так же виконує повне сканування таблиці. Щоб змінити план запиту, додайте предикат в умова WHERE:
  • Подивіться план виконання запиту - він змінився. Ми всього лише додали предикат з умовою, яке було це слово в будь-якому випадку, так як в нашому стовпці максимальне значення 10000. Ви можете робити те ж саме і з оператором BETWEEN. вказуючи нереальні граничні значення.
  • Схожі статті