Використання модуля даних - інтернет підручник c builder

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

Є три типи модулів даних:

  1. Простий модуль даних.
  2. Віддалений модуль даних.
  3. Web-модуль.

Далі розглядається простий модуль даних, який представлений об'єктом DataModule. Використання віддаленого модуля даних вивчається при розгляді трирівневих додатків.

Віддалений модуль даних призначений для роботи з віддаленими БД в трирівневої архітектурі «клієнт-сервер» і використовується для створення сервера додатки проміжного рівня між додатком і сервером БД.

Модуль даних, як і форма, є контейнером для своїх невізуальних компонентів, і для нього створюється модуль коду з розширенням срр. Додавання модуля даних до проекту виконується командою File \ New \ DataModule головного меню С ++ Builder. У вікні модуля компоненти розміщуються так само, як і в формі. При виборі об'єкта у вікні Інспектора об'єктів відображаються його властивості, значення яких можна переглядати і змінювати.

При зверненні до містяться в модулі даних компонентів для них вказується складене ім'я, в яке, крім імені компонента, входить ім'я модуля даних. Складене ім'я має формат:

<Имя модуля данных>.<Имя компонента>

Далі наводиться приклад коду, в якому здійснюється звернення до компонентів модуля даних.

void __fastcall TForm1 :: FormCreate (TObject * Sender)
DataModule2-> Table1-> DatabaseName = "BCDEMOS";
DataModule2-> Table1-> TableName = "Clients.dbf";
DataModule2-> DataSource1-> DataSet = DataModule2-> Table1;
DBGrid1-> DataSource = DataModule2-> DataSource1;
DBNavigator1-> DataSource = DataModule2-> DataSource1;
DataModule2-> Tablel-> Active = true;
>

Для компонентів встановлюються значення властивостей, що зв'язують між собою ці компоненти і таблицю БД. Значення властивостей встановлюються динамічно в процесі виконання програми, для чого використаний обробник події створення головної форми додатка. У складених іменах компонентів доступу до даних, якими є джерело даних DataSource1 і набір даних Table1, вказується ім'я модуля даних DataModule2.

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

Посилання на інший модуль можна написати самостійно, але С ++ Builder дозволяє вставити її автоматично. При виборі команди File \ lnclude Unit Hdr (Файл \ Підключити заголовок модуля) з'являється діалогове вікно Use Unit. Після вибору потрібного модуля і натискання кнопки ОК відповідну пропозицію препроцесора додається в модуль форми.

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

Крім компонентів доступу до даних, якими є Session. Database. Table. Query. StoredProc. BatchMove і ін. В модулі даних можна розміщувати невізуальні компоненти, які не мають прямого відношення до БД, наприклад, ImageList. OpenDialog або Timer.

При роботі з модулем даних в палітрі компонентів доступні тільки невізуальні компоненти.

Модуль даних дозволяє:

  • відокремити управління БД від обробки даних;
  • створити модуль, яким користуються кількома додатками.

Основним призначенням модуля даних є централізоване зберігання компонентів доступу до даних, а також коду для цих компонентів, зокрема обробників подій. У модулі даних зручно розміщувати код, що виконує управління БД, наприклад, реалізацію бізнес-правил.

Використання простого модуля даних декількома додатками дозволяє прискорити розробку додатків, тому що готовий модуль даних згодом можна включати в нові додатки. Крім того, управління БД через загальний модуль дає можливість визначити для всіх користувачів однакові режими і правила роботи з базою, а також робить більш простим зміна цих режимів до правил.

Однак для невеликих додатків використання простого модуля даних не завжди виправдано, тому що може утруднити, а не полегшити розробку програми.