Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет icon

Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет




НазваКонспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет
Сторінка14/19
Дата04.06.2013
Розмір1.62 Mb.
ТипКонспект
1   ...   11   12   13   14   15   16   17   18   19
^

3.3 Реалізація доступу до БД у середовищі DELPHI

3.3.1 Механізми доступу до БД


VCL-бібліотека класів середовища проектування Delphi надає ряд класів, що дозволяють швидко й ефективно розробляти різні додатки БД. Ці класи подані такими групами:

  • компоненти для доступу до даних, реалізуючі: доступ через машину БД BDE (Borland Database Engine), який надає доступ через ODBC-драйвери або через внутрішні драйвери машини БД BDE (компоненти сторінки BDE-палітри інструментів); доступ через ADO-об'єкти (Active Data Objects), в основі якого лежить застосування технології OLE DB (компоненти сторінки ADO); доступ до локального або вилученого SQL-сервера InterBase (компоненти сторінки InterBase); доступ за допомогою легковагих драйверів dbExpress; доступ до БД при багатоланковій архітектурі (компоненти сторінки DataSnap);

  • візуальні компоненти, що реалізують інтерфейс користувача;

  • компоненти для зв'язку джерел даних із візуальними компонентами, які надають інтерфейс користувача;

  • компоненти для візуального проектування звітів.

Основними механізмами доступу до даних, підтримуваними в Delphi, є:

  • ODBC - доступ через ODBC-драйвери БД або BDE-драйвери;

  • OLE DB - доступ з використанням провайдерів даних (OLE DB - це метод доступу до будь-яких даних через стандартний COM-інтерфейс);

  • засоби dbExpress, що використовують легковагі драйвери БД;

  • засоби доступу до розподілених наборів даних у багатоланковій архітектурі.

Найпростіший механізм керування даними, що використовують ODBC-драйвери, може бути реалізований за такою схемою:

У модуль даних (або у форму) додається компонент набору даних (об'єкт класу TDataSet) і встановлюється зв'язок із джерелом даних, обумовлене властивістю DatabaseName. Зв'язок може бути зазначений одним із трьох способів: по імені БД, каталогу або псевдоніму (спосіб вказівки зв'язки може бути обмежений типом джерела даних). Список всіх псевдонімів доступний на етапі проектування.

У модуль даних (або у форму) додається компонент джерела даних (TDataSourse), що є центральною сполучною ланкою між набором даних й елементами керування, що відображають ці дані. Властивість DataSet компонента типу TDataSourse указує набір даних, формована компонентами таких класів як TTable або TQuery. Якщо компоненти набору даних і джерела даних розміщені в модулі даних, то їх варто додати в проект (команда меню File | Use unit).

У форму додаються елементи керування для роботи з даними, такі як TDBGrid, TDBEdit, TDBCheckbox. Вони зв'язуються з компонентом джерела даних, що вказується властивістю DataSource. Ім'я поля набору даних визначається властивістю DataField.

Графічно схему роботи з базами даних для дволанкових архітектур у середовищі Delphi можна представити в спосіб, який показано на рис. 3.5.

Для збереження даних із БД в XML-форматі або двійковому форматі, і назад, для формування набору даних з XML або двійкового файлу застосовується провайдер даних.



Рисунок 3.5 – Схема роботи з БД у середовищі Delphi




^

3.3.2 Набори даних


Базою всіх класів наборів даних є клас TDataSet. Він визначає основу структури всіх наборів даних - масив компонентів типу TField (кожен елемент масиву відповідає стовпцю таблиці).

^ Набір даних - це впорядкована послідовність рядків, витягнутих із джерела даних. Кожен рядок набору даних складається з полів, що вказують у властивостях класу.

Залежно від механізму доступу, який використовується додатком, базовими класами набору даних можуть бути:

TTable, TQuery, TStoredProc - для одноланкових або дволанкових додатків, які використовують машину БД BDE. Клас TQuery додатково дозволяє виконувати параметричні запити;

TClientDataSet - для реалізації клієнтського набору даних і для багатоланкової архітектури, яка використовує розподілений доступ;

TADODataSet - для додатків, які використовують ADO-об'єкти;

TSQLDataSet - для доступу до БД за допомогою dbExpress. Цей клас реалізує спрямований набір даних, що функціонує за принципом курсору. Для такого набору даних не створюється кеш пам'яті на клієнті, і серед методів доступу можливі тільки методи Next й First. Редагування записів у спрямованому наборі даних можливо тільки явним виконанням SQL-оператора UPDATE або при установці з'єднання з клієнтським набором даних через провайдера;

TSQLTable й TSQLQuery - для доступу до БД за допомогою dbExpress.

На схемі наведена ієрархія класів наборів, дані бібліотеки VCL:




Для визначення набору даних необхідно задати такі властивості:

  • для класу TTable - значення властивостей DatabaseName й TableName;

  • для класу TQuery - значення властивості SQL й, можливо, властивості DatabaseName.

Для того, щоб читати дані з таблиць або записувати їх у таблиці, набір даних попередньо повинен бути відкритий. Відкрити набір даних можна одним із наступних способів: установити значення властивості Active набору даних рівним True під час виконання додатка (наприклад, Table1.Active:= True;) або в режимі проектування в інспекторі об'єктів; викликати метод Open (наприклад, Table1.Open;).

Аналогічно закрити набір даних можна викликом методу Close або встановивши значення властивості Active таким, що дорівнює False. Для компонента типу TQuery метод Open може бути виконаний тільки для закритого набору даних: спроба відкрити вже відкритий набір даних ініціює помилку.

Відкриття набору даних спричиняє: ініціацію подій BeforeOpen й AfterOpen; установку стану набору даних у dsBrowse; відкриття курсору для набору даних. Якщо в момент відкриття набору даних відбулася помилка, то стан набору даних установлюється в dsInactive, а курсор закривається.

При роботі з компонентами наборів даних можна обійтися без явного використання компонентів, які реалізують з'єднання з БД. Однак деякі можливості, такі як керування транзакціями або кешировані відновлення, неможливі без компонентів типу TDatabase або TADOConnection. Компонент "БД" TDatabase застосовується для з'єднання із джерелом даних через драйвери BDE або зовнішні ODBC-драйвери. Компонент TADOConnection використовується для створення об'єкта "з'єднання" при доступі через OLE DB, що інкапсулюються за допомогою ADO-об'єктів VCL-бібліотеки.

За замовчуванням при переході від одного запису набору даних до іншої відбувається запис всіх зроблених змін у БД. Для того, щоб можна було скасовувати зроблені зміни або виконувати відновлення декількох записів, застосовують кешировані відновлення. Вони дозволяють значно знизити мережний трафік за рахунок того, що всі зроблені зміни зберігаються у внутрішньому кеші й при переході від одного запису до іншого інформація у БД не передається. Щоб включити режим кешированого відновлення, необхідно встановити значення властивості CachedUpdates таким, що дорівнює True для компонента набору даних. Для присвоєння кешированного відновлення викликається метод ApplyUpdates, а для скасування - CancelUpdates.
^

3.3.3 Класи бібліотеки VCL


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

  • Active - властивість, що визначає, чи відкритий набір даних;

  • CurrentRecord - властивість, що визначає номер поточного запису набору даних;

  • DataSource - властивість, що вказує батьківську таблицю (для таблиць, зв'язаних відношенням батьківська - дочірня);

  • Bof - властивість, що визначає, чи перебуває курсор на першому записі набору даних;

  • Eof - властивість, що визначає, чи досягнуть кінець набору даних;

  • FieldCount - властивість, що вказує кількість полів у наборі даних;

  • Bookmark - властивість, що вказує поточну закладку в наборі даних. Закладка відзначає позицію в наборі даних. Використовуючи методи TDataSet.GetBookmark й TDataSet.GotoBookmark, додаток може запам'ятовувати й швидко переходити на потрібну позицію в наборі даних;




  • Fields - властивість, що представляє собою масив полів набору даних і використовуване для доступу до цих полів. Властивість Fields дозволяє одержати ім'я поля в поточній структурі запису:

var S: String;

begin

S := Fields[0].FieldName;// Ім'я першого поля

S := Fields[1].FieldName;// Ім'я другого поля

...

end;

записати в змінну значення поля.

var s: String; i: Integer; d: TDateTime;

s := Fields[0].AsString;

i := Fields[0].AsInteger;

d := Fields[0].AsDate;

  • Filter - властивість, в яку заноситься рядок, що визначає фільтр для набору даних. Фільтр визначає умова, якій повинні задовольняти доступні записи.

Визначення фільтра повинне задовольняти таким правилам:

фільтр складається з умов для полів набору даних, об'єднаних логічними операціями AND й OR. Наприклад: F2 > 10 AND F2 <50;

якщо ім'я поля містить пробіли, то воно повинне бути укладене у квадратні дужки або подвійні лапки. Наприклад: [Field Name1] > 50;

Filtered - властивість, що вказує, чи використовується фільтр, заданий властивістю Filter;

Found - властивість, що визначає, чи успішно виконаний пошук методами FindFirst, FindLast, FindNext або FindPrior;

Modified - властивість, що визначає, чи був змінений активний запис;

RecordCount - властивість, що містить загальне число записів у наборі даних;

  • State - властивість, що вказує поточний стан набору даних. Ця властивість може приймати такі значення:

dsInactive - набір даних закритий;

dsBrowse - дані доступні тільки для перегляду;

dsEdi - можна змінювати активний запис;

dsInsert - активним записом є новий запис доти, поки не буде збережена;

dsSetKey - перегляд обмеженої безлічі записів (SetRange) або пошук запису;

dsCalcFields - виконується оброблювач події OnCalcFields;

dsFilter - виконується оброблювач події OnFilterRecord;

dsOpening - набір даних перебуває в процесі відкриття.

  • Append - метод, що додає в кінець набору даних новий запис;

  • Delete - метод, що видаляє поточний запис із БД. Якщо в момент видалення запису набір даних перебуває в неактивному стані, то ініціюється виключення;

  • Edit - метод, що переводить поточний запис у режим редагування;

  • Cancel - метод, що скасовує зміни, зроблені в поточному записі;

  • Post - метод, що виконує внесення змін у БД;

  • Refresh - метод, що виконує відновлення результуючого набору шляхом повторного добування даних із БД;

  • Insert - метод, що вставляє в набір даних новий запис;

  • InsertRecord - метод, що вставляє в набір даних новий запис зі значеннями, які зазначені параметрами методу;

  • Close - метод, що закриває набір даних;

  • Open - метод, що відкриває набір даних;

  • First - метод, що встановлює курсор на перший запис набору даних і робить цей запис активним;

  • Last - метод, що встановлює курсор на останній запис набору даних і робить цей запис активним;

  • Next - метод, що переміщає курсор на наступний запис набору даних і робить цей запис активним;

  • Prior - метод, що переміщає курсор на попередній запис набору даних і робить цей запис активним.

Клас TDATASOURCE реалізує зв'язок між компонентами - наборами даних й елементами керування, які використовуються для відображення даних.

При побудові відношення між таблицями "батьківська-дочірня" компонентів "джерело даних" служить для зв'язування наборів даних, указуючи батьківський набір даних.

Клас TDataSource містить набір властивостей і методів, що використовуються для доступу до набору даних, включаючи наступні:

  • AutoEdit - властивість, що визначає, чи буде автоматично викликатися метод Edit набору даних при одержанні фокуса елементом керування, асоційованим із джерелом даних;

  • DataSet - властивість, що вказує на використовуваний набір даних.

Змінюючи значення властивості DataSet під час виконання, можна ефективно перемикатися на роботу з різними наборами даних, відображаючи різні набори даних у тих самих елементах керування.

DataSource.DataSet := Table1;.

  • Enabled - властивість, що визначає, чи буде елемент керування відображати асоційовані з ним дані, або буде відображатися порожнім;

  • State - властивість, що дозволяє визначити стан використовуваного набору даних.

if DataSource1.Dataset <> nil then

//Кнопка доступна тільки в тому випадку, якщо набір

//даних перебуває в стані редагування

//або вставки нового запису

BtnPost1.Enabled := DataSource1.State in [dsEdit, dsInsert];

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

Компоненти типу TTable можуть використовувати всі властивості й методи, наслідувані від класу TDataSet, а також властивості й методи класу TTable для набору даних, включаючи такі:

  • DatabaseName - властивість, що визначає ім'я джерела даних DSN;

  • CanModify - властивість, що визначає, чи може додаток виконувати вставку, редагування й видалення записів у таблиці;

  • DefaultIndex - властивість, що визначає, чи повинні дані в таблиці бути впорядковані при її відкритті. Якщо значення властивості дорівнює True (за замовчуванням), то виконується впорядкування за первинним ключем або унікальним індексом;

  • IndexName - властивість, що дозволяє визначити вторинний індекс, використовуваний для сортування набору даних, які відкриваються;

  • Exclusive - властивість, що дозволяє встановити винятковий режим доступу до таблиці (значення властивості повинне бути визначене до відкриття таблиці);

  • MasterSource - властивість, що визначає ім'я компонента "джерело даних" батьківської таблиці для встановлення відносини між таблицями "батьківська-дочірня";

  • MasterFields - властивість, що визначає одне або кілька полів із батьківської таблиці, службовців для зв'язку з відповідними полями даної дочірньої таблиці (це задає відношення між батьківською й дочірньою таблицями. Поля в списку розділяються крапкою з комою);

  • ReadOnly - властивість, що дозволяє встановити для таблиці режим доступу "тільки для читання";

  • TableName - властивість, що вказує використовувану таблицю БД;

  • RecNo - властивість, що вказує номер поточного запису набору даних;

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

  • FindNearest - метод, що переміщає курсор на запис, що містить значення, найбільш близьке до зазначеного значення ключового поля (пошук може виконуватися як по одному значенню, так і по декількох, якщо використовується складений індекс);

  • Locate - метод, який використовується для пошуку першого входження значення зазначеного поля або набору полів (якщо запис знайдений, то вона стає поточною).

Клас TQUERY дозволяє виконувати будь-який SQL-оператор, припустимий по синтаксису ODBC-драйвером. Якщо використовується SQL-оператор SELECT, то компонент повертає набір даних (результуючий набір). На відміну від класу Ttable, клас TQuery дозволяє створювати набори даних з декількох таблиць, а також обмежувати одержуваний набір даних певними умовами. Це скасовує необхідність добування всіх записів таблиці в набір даних, що, у свою чергу, заощаджує пам'ять, скорочує мережний трафік для вилучених БД і зменшує час доступу.

Для визначення набору даних TQuery варто встановити значення властивості SQL й, можливо, властивості DatabaseName (властивість DatabaseName визначає ім'я джерела даних, але для деяких БД можна задати повне ім'я таблиці, що включає місце розміщенння файлу, у тексті SQL-оператора, - у цьому випадку властивість DatabaseName не використовується). Найбільш правильним підходом все-таки варто вважати той, при якому ім'я DSN джерела даних указується властивістю DatabaseName, а в SQL-операторі визначається тільки ім'я таблиці без визначення її місця розміщення.

За замовчуванням набір даних, сформований компонентом типу TQuery, не редагується. Для того, щоб значення в створеному наборі даних можна було редагувати, необхідно виконати одне з таких дій:

зв'язати компонент TQuery з компонентом типу TUpdateSQL (наприклад: Query1. Query1.UpdateObject:= UpdateSQL1;) і визначити для останнього значення властивості ModifySQL (наприклад: update TBL1 set F1 = :F1, F2 = :F2 where F3 = :OLD_F3);

установити значення властивості RequestLive таким, що дорівнює True (підтримка цієї можливості залежить від використовуваної БД).

  • Клас TQuery містить властивості й методи, які використовуються для роботи з набором даних, включаючи такі:

  • DataSource - властивість, що дозволяє вказати батьківський набір даних (для відношення "батьківський-дочірній").

Наприклад, якщо властивість SQL містить значення 'SELECT * FROM Tbl1 t WHERE (t.FNo = :FNo)', те значення змінного зв'язку :FNo буде визначатися із джерела даних, зазначеного властивістю DataSource.

  • Params - властивість, що містить список параметрів для SQL-оператора.

  • RequestLive - властивість, що визначає, чи буде можливість редагувати створюваний набір даних (можливість одержання що модифікує результуючого набору залежить від використовуваного SQL-сервера);

  • SQL - властивість, що містить текст SQL-оператора (для автоматичного формування SQL-оператора можна викликати з контекстного меню компонента TQuery діалог SQL Builder);

  • DatabaseName - властивість, що визначає ім'я джерела даних, які підключаються, (ім'я DSN джерела даних або ім'я, уведене класом типу TDatabase);

  • ExecSQL - метод, що виконує SQL-оператор, зазначений властивістю SQL (для SQL-оператора, що створює набір даних, замість ExecSQL використовується метод Open);

  • ExecSQL можна викликати для таких SQL-операторів, як INSERT, UPDATE, DELETE, CREATE TABLE і т.п.

Якщо перед викликом ExecSQL не був викликаний метод Prepare, то SQL-оператор буде одночасно й відкомпільований, і виконаний.

  • Prepare - метод, що виконує компіляцію SQL-оператора.

Виклик цього методу перед ExecSQL збільшує швидкість виконання запиту при багаторазовому повторенні викликів ExecSQL для того самого оператора (наприклад, параметризованого запиту). Це дозволяє відкомпілювати SQL-оператор тільки один раз, а потім багаторазово його виконувати.

Клас TSQLTABLE подає таблицю БД, доступну для клієнта як спрямований набір даних. Такий набір містить всі записи для полів, певних у класі TSQLTable. Об'єкт типу TSQLTable повинен бути пов'язаний з об'єктом типу TSQLConnection, що визначає з'єднання із джерелом даних. Для відображення такого набору даних не можна використовувати таблицю, тому що в клієнта відсутній кеш пам'яті для набору даних. Значення полів таблиці можна відображати компонентами типу TDBText або TDBEdit. Для переміщень по набору записів доступні тільки методи First й Next.

Після розміщення в модулі даних або на формі компонента треба виконати такі дії: установити значення властивості SQLConnection компонента TSQLTable, вибравши доданий раніше компонент типу TSQLConnection із пропонованого списку; визначити ім'я таблиці БД, використаної для побудови набору даних, визначивши властивість TableName компонента TSQLTable.

Клас TUPDATESQL дозволяє для наборів даних, створених з доступом "тільки для читання", підтримувати можливість їхнього відновлення за допомогою виконання SQL-оператора.

Клас TUpdateSQL реалізує такі властивості й методи:

  • DeleteSQL - властивість, що визначає SQL-оператор DELETE;

  • InsertSQL - властивість, що визначає SQL-оператор INSERT;

  • ModifySQL - властивість, що визначає SQL-оператор UPDATE;

  • ExecSQL - метод, що виконує один із заданих SQL-операторів (залежно від значення параметра, що вказується такими константами: ukDelete, ukInsert, ukModify).

Клас TDATABASE реалізує роботу з об'єктом "БД" і надає засоби контролю над з'єднанням з БД. Компонент типу TDatabase дозволяє управляти транзакціями.

Для роботи з компонентом TDatabase необхідно встановити значення властивостей AliasName й DatabaseName. Якщо значенням властивості AliasName зазначений DSN існуючого джерела даних, то розроблювач може сам визначити будь-який внутрішній (для додатка) псевдонім БД і задати його у властивості DatabaseName. У цьому випадку для будь-якого набору даних у списку значень властивості DatabaseName буде відображатися поряд з усіма доступними DSN джерелами даних і внутрішній псевдонім, заданий властивістю DatabaseName компонента TDatabase.

У тому випадку, якщо DSN не визначений, то властивість DatabaseName повинна містити повне ім'я файлу БД, а властивість DriverName - указувати використовуваний ODBC-драйвер.

Компонент типу TDatabase дозволяє управляти режимами роботи з наборами даних і транзакціями, використовуючи такі властивості й методи:

  • Exclusive - властивість, що дозволяє додатку одержати винятковий доступ до БД (якщо це підтримується SQL-сервером);

  • InTransaction - властивість, що вказує, чи був виконаний для БД виклик методу StartTransaction;

  • ReadOnly - метод, що вказує, чи встановлений для з'єднання з БД доступ "тільки читання";

  • TransIsolation - метод, що задає рівень ізоляції при керуванні транзакціями. Рівень ізоляції визначає, як дана транзакція буде взаємодіяти з іншими транзакціями, що працюють із тими самими таблицями. Властивість TransIsolation може бути зазначена одним із таких значень:

tiDirtyRead - транзакція може читати дані, які були змінені іншою транзакцією, але для яких не був виконаний виклик Commit (фіксація змін);

tiReadCommitted - дозволяє в одній транзакції читати фіксовані зміни, зроблені в базі даних іншою транзакцією;

tiRepeatableRead - істинність даних гарантується на увесь час читання, і транзакція не бачить ніяких змін, зроблених іншою транзакцією. Прочитаний запис залишається постійним, поки в ньому не будуть зроблені зміни усередині самої транзакції;

  • StartTransaction - метод, що відкриває нову транзакцію;

  • Commit - метод, що виконує фіксацію поточної транзакції;

  • Rollback - метод, що виконує відкіт поточної транзакції;

  • Execute - метод, що виконує зазначений параметром SQL-оператор, що не повертає результуючого набору.

Клас TADOCONNECTION забезпечує з'єднання з даними, доступ до яких реалізується через ADO-об'єкти. ADO-об'єкти дозволяють працювати з різними сховищами даних, які можуть і не бути SQL-операторами. Об'єкти типу TADOConnection використовують для доступу до даних OLE DB провайдери.

Компоненти TADOCommand й TADODataSet зв'язуються із джерелом даних за допомогою об'єкта TADOConnection, указуючи посилання на нього як значення властивості Connection.

Для ідентифікації з'єднання необхідно визначити значення властивості ConnectionString (рядок з'єднання) компонента TADOConnection, що може ґрунтуватися на вказівці: datalink-файлу; рядка з'єднання.

Якщо як значення властивості ConnectionString зазначене ім'я UDL-файлу, то настроювання з'єднання можна виконувати автономно від додатка (наприклад, указуючи ім'я БД Microsoft SQL Server на поточному ПК).
^

3.3.5 Класи компонентів керування даними


Компоненти керування даними розміщені на сторінці Data Controls палітри компонентів. Багато хто із цих компонентів аналогічні елементам керування сторінки Standard, з тією лише відмінністю, що зв'язано через джерело даних (компонент типу TDataSource) з певним полем (або полями) з набору даних (компонентів типу TTable або TQuery).

Бібліотека VCL надає такі класи компонентів керування даними:

  • TDBGrid - клас, що дозволяє відображати запису набору даних у вигляді таблиці й управляти цими записами.

  • TDBNavigator - клас, що надає засоби навігації по набору даних, а також можливості додавання нових записів, включення режиму редагування, присвоєння й скасування зроблених змін. Для того, щоб програмно ініціювати дію, виконувану по щиглику на кнопці навігатора, варто викликати метод BtnClick: DBNavigator1.BtnClick(nbPost); // Присвоєння зроблених змін.

Компонент TDBNavigator може відображати кнопки, що вказуються такими константами:

nbFirst - перехід до першого запису;

nbPrior - перехід до попереднього запису;

nbNext - перехід до наступного запису;

nbLast - перехід до останнього запису;

nbInsert - вставка перед поточним записом нового запису й перехід на неї;

nbDelete - видалення поточного запису;

nbEdit - перехід у режим редагування поточного запису;

nbPost - внесення змін поточного запису в БД;

nbCancel - скасування змін, зроблених у поточному записі;

nbRefresh - повторне зчитування значень полів із джерела даних.

  • TDBText - клас, що дозволяє, як напис, відображати значення поля поточного запису набору даних.

  • TDBEdit - клас, що реалізує роботу з однорядковим полем редагування.

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

  • TDBImage - клас, що реалізує об'єкт "рисунок", у якому можна відображати й змінювати значення поля набору даних формату BLOB.

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

  • TDBCheckBox - клас, що реалізує компонент "прапорець", що пов'язаний з полем БД.

  • TDBListBox - клас, що реалізує компонент "список", який використовується для відображення значень поля набору даних. Значення, відображувані в списку, утримуються у властивості Items.

  • TDBComboBox - клас, що реалізує компонент "список, що розкривається", який використовується для відображення значень поля набору даних. Значення, відображувані в списку, утримуються у властивості Items.

  • TDBLookupListBox - клас, що дозволяє виконувати перегляд списку, заповненого значеннями полів з іншого набору даних. Набір даних, які переглядаються, вказується властивістю ListSource, що переглядає поле (або поля) - властивістю ListField. Властивість KeyField указує поле набору, що переглядається, відповідному полю поточного набору даних, що вказується властивостями DataField й DataSource. Даний клас дозволяє вибирати значення поля поточного набору даних з іншого набору даних, які переглядаються;

  • TDBCtrlGrid - клас, що реалізує особливий вид таблиці, у якій кожен запис відображається на окремій панелі (кількість панелей у компоненті вказується значенням властивості RowCount).
^

3.3.6 Події, які ініціюються для наборів даних


AfterCancel і BeforeCancel - відбувається після/до скасування в додатку всіх змін, зроблених для поточного запису.

AfterClose і BeforeClose - відбувається після/до закриття набору даних і перекладу БД у стан dsInactive.

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

AfterEdit і BeforeEdi - відбувається після/до початку редагування додатком поточного запису.

AfterInsert і BeforeInsert - відбувається після/перш ніж додаток вставить новий запис.

AfterOpen і BeforeOpen - відбувається після/перш ніж додаток відкриє набір даних, але до того, як які-небудь доступні дані будуть відображені.

AfterPost і BeforePost - відбувається до завершення переносу значень активного запису в БД або внутрішній кеш.

AfterRefresh і BeforeRefresh - відбувається після/до відновлення набору даних.

AfterScroll й BeforeScroll - відбувається після/до переміщення позиції курсору на інший запис.

OnCalcFields - відбувається при відкритті набору даних, перекладу його в стан dsEdit, переміщенні фокуса уведення від одного компонента до іншого або від одного стовпця до іншого, при змінах запису або при добуванні запису з БД, але тільки в тому випадку, якщо значення властивості AutoCalcFields дорівнює True;

OnDeleteError - ініціюється, якщо при спробі видалення рядка відбулася помилка - було зроблене виключення.

OnEditError - ініціюється, якщо при спробі зміни або вставки запису відбулася помилка - було зроблене виключення.

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

OnFilterRecord - відбувається при зміні активного запису й тільки в тому випадку, якщо властивість State набору даних установлено таким, що дорівнює dsFilter, а властивість Filtered дорівнює True. Щоб запис був включений у набір даних, для нього варто встановити параметр Accept таким, що дорівнює True.

OnNewRecord - відбувається при вставці або додаванні нового запису.

1   ...   11   12   13   14   15   16   17   18   19

Схожі:

Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconКонспект лекцій Суми Сумський державний університет 2012 Міністерство освіти і науки, молоді та спорту України Сумський державний університет
Внутрішній економічний механізм підприємства: конспект лекцій / укладач Н. В. Мішеніна.– Суми : Сумський державний університет, 2012....
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconКонспект лекцій Суми Видавництво Сумду 2010 міністерство освіти І науки україНи
Затверджено на засіданні кафедри фінансів як конспект лекцій з дисципліни "Інформаційні системи і технології у фінансах"
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconМіністерство освіти І науки україни сумський державний університет до друку та в світ дозволяю на підставі «Єдиних правил»
Методи прийняття управлінських рішень. Конспект лекцій / Укладач Д. О. Смоленніков. – Суми: Вид-во СумДУ, 2008. – 89 с
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconКонспект лекцій Суми Видавництво Сумду 2009
Внутрішній економічний механізм підприємства: Конспект лекцій/ Укладач І. В. Новикова. – Суми: Вид-во СумДУ, 2009. – 185с
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconМіністерство освіти І науки україНи Сумський державний університет Менеджмент персоналу
Менеджмент персоналу: конспект лекцій / Укладач: К. В. Ілляшенко. – Суми: Вид-во СумДУ, 2010. – 78с
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconКонспект лекцій Суми Видавництво Сумду 2009
Психологія творчості : Конспект лекцій / Укладач О. А. Кривопишина.– Суми: Вид-во СумДУ, 2009.– 81 с
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconКонспект лекцій Суми Видавництво Сумду 2009
Психологія творчості : Конспект лекцій / Укладач О. А. Кривопишина.– Суми: Вид-во СумДУ, 2009.– 81 с
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconМіністерство освіти І науки україни сумський державний університет граматичні таблиці з української мови для студентів-іноземців підготовчого відділення Суми Видавництво СумДУ
Граматичні таблиці з української мови для студентів-іноземців підготовчого відділення / Уклад.: Н. О. Ворона, Т. О. Дегтярьова, Н....
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconМіністерство освіти І науки україни сумський державний університет історія України
України: навчальні матеріали для студентів-іноземців підготовчого відділення / Укладачі: М. С. Казанджиєва, О. П. Коньок, Н. О. Тубол,...
Конспект лекцій Суми Видавництво Сумду 2009 Міністерство освіти І науки України Сумський державний університет iconМіністерство освіти І науки україни сумський державний університет медичний інститут кафедра інфекційних хвороб І епідеміології
Методичні рекомендації до семінарських занять лікарів-інтернів спеціальності “Інфекційні хвороби” / Укладачі М. Д. Чемич, Н.І. Ільїна,...
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи