Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
tspp.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
203.26 Кб
Скачать

41. Розробка аплікацій баз даних засобами Delphi. Робота з таблицями та індексами.

Основними властивостями набору даних як такого є Active і State, а стосовно до записів - RecordCount і RecNo. Зокрема, властивість RecordCount вказує на поточну кількість записів в наборі даних (яке може не збігатися з кількістю записів в таблиці БД завдяки можливої ​​фільтрації), а властивість RecNo вказує на індекс активної запису. Що стосується властивості Active, то ми вже розглядали його в контексті компонента Table і знаємо, що воно відповідає за безпосереднє підключення до БД. Значення цієї властивості може бути встановлено як на етапі розробки програми, так і під час виконання. При цьому слід враховувати, що спроба встановити властивість Active в істину може викликати виняткову ситуацію, якщо не вказана, як мінімум, фізична таблиця з даними (за допомогою властивості TableName): Table1.TableName = '.. \ DB1 \ bill.db'; / / Вказуємо фізичну таблицю БД Table1.Active: = true; / / Робимо набір активним Якщо ж підтримувати активне з'єднання по ходу подальшого виконання програми немає необхідності, то можна повернути стан у неактивний, присвоївши властивості Active значення брехня. Цю операцію необхідно зробити і в тому випадку, якщо потрібно змінити вихідний джерело з даними: Table1.Active: = false; / / Відключаємося Table1.TableName = '.. \ DB1 \ customer.db'; / / Змінюємо таблицю БД Table1.Active: = true; / / Включаємо внось Альтернативним методом зміни стану набору даних є використання методів Open і Close: Table1.Close; / / Відключаємося Table1.TableName = '.. \ DB1 \ customer.db'; / / Змінюємо таблицю БД Table1.Open; / / Включаємо внось Фактично, ці методи виконують ту ж роботу, що і зміна властивості Active, тобто звернення до методу Open встановлює властивість Active в істину, а Close - в брехню. При написанні програмного коду прийнято використовувати саме ці методи, а не змінювати значення властивості Active.

42. Переміщення по набору даних. Фільтрація. Організація пошуку записів. Модифікація набору даних.

Перемещение или навигация по записям набора данных может осуществляться несколькими путями. Например, в компонентах TDBGrid и TDBCtrlGrid, которые отображают сразу несколько записей набора данных, можно использовать клавиши вертикального перемещения курсора или вертикальную полосу прокрутки. Основна перевага фільтрів в порівнянні з пошуком полягає в тому, що застосовувати фільтр можна без будь-яких підготовчих дій над набором даних, так як фільтри не використовують індекси. Один мінус - фільтрація виконується повільніше ніж пошук заснований на індексах. Є два варіанти за допомогою яких можна задати умову на фільтрацію. Можна використовувати їх окремо або обидва відразу. Перший - строкове значення у властивості Filter. Другий - це умова описане в обробнику події OnFilterRecord. Починається фільтрація як тільки властивість Filtered, встановлено в True. procedure TForm1.Edit1Change(Sender: TObject); begin if Length(Edit1.Text) > 0 then begin ADOTable1.Filtered:=false; ADOTable1.Filter:=Combobox1.Text + ' LIKE ' + #39 + Edit1.Text + '%' + #39; ADOTable1.Filtered:=true; end else ADOTable1.Filtered:=false; end; Пошук function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; virtual;  function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant; virtual; Різниця між ними в тім, що функція Lookup при пошуку запису переводить курсор на знайдений запис, а Lookup не робить цього. Якщо поля, що указані для пошуку, є індексованими, то пошук провадиться з використанням індексу, що значно прискорює пошук. Поняття редагування, додавання й видалення даних можна об'єднати в єдиному понятті модифікації набору даних. Модифицируемость, тобто можливість зміни набору даних, залежить від різних умов. Delphi надає програмістові широкі можливості обмеження модифікованості набору даних за допомогою відповідних властивостей.  Яскравим прикладом накладення обмеження на модифицируемость набору даних є перемикання його в режим «тільки для читання». Наприклад, якщо ми хочемо, щоб можливості користувача обмежувалися виключно переглядом записів з набору даних без можливості їх редагування або занесення в них нових записів, можна використовувати властивість Readonly. Дана властивість має за умовчанням значення false, тобто набір даних можна модифікувати. Наведена нижче рядок коду дозволяє перевести набір даних Tablel в режим «тільки для читання»: Table1.Readonly: = true

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]