Вибір інформації з бази даних

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







Для вибірки з бази даних записів, що задовольняють деякому критерію, призначений компонент Query, значок якого знаходиться на вкладці Data Access (рис. 17.21).

Мал. 17.21. Значок компонента Query

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

У табл. 17.18 перераховані деякі властивості компонента Query.

Таблиця 17.18. Властивості компонента Query

Таблиця 17.18 (закінчення) Властивість Визначає

Active При присвоєння властивості значення True активізує виконання запиту

Для того щоб під час розробки програми задати, яка інформація буде виділена з бази даних в результаті виконання запиту, властивість sql повинно містити представлений на мові SQL запит на вибірку даних.

У загальному вигляді запит на вибірку даних з таблиці виглядає так:

SELECT СпісокПолей FROM Таблиця WHERE

(Критерій) ORDER by СпісокПолей де:

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

FROM ': Школа: s choo1.db'

(Class = 40a ') ORDER by Name, Fam забезпечує вибірку з бази даних Школа записів, у яких в поле class знаходиться текст 10а, т. Е. Формує алфавітний список учнів 10 а класу.

Інший приклад. запит

(Earn> 'К') and (Earn <'Л') ORDER BY Name, Earn обеспечивает выбор информации об учениках, фамилии которых начинаются на букву К.

Запит може бути сформований і записаний в властивість sql під час розробки форми або під час роботи програми.

Вибір інформації з бази даних

Ріс.17.22. Приклад запиту до бази даних Школа







Властивість sql є список рядків. Тому, щоб сформувати запит під час роботи програми, потрібно, використовуючи метод Add, додати РЯДКИ (sql-інструкція) в СПИСОК sql.

Нижче наведено фрагмент коду, який формує запит на пошук інформації про конкретну людину (критерій вибору - вміст ПОЛЯ Fam має збігатися зі значенням змінної fam).

with forml.Queryl do begin Close; // закрити файл - результат виконання

Open; // активізуємо виконання запиту

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

Вибір інформації з бази даних

Мал. 17.23. Форма додатка База даних Школа

Лістинг 17.2. База даних Школа unit school2_; interface

type TForml = class (TForm) Tablel: TTable; // таблиця - вся база даних

Queryl: TQuery; // запит - записи, // задовольняють критерію вибору DataSourcel: TDataSource; // джерело даних - таблиця або запит DBGridl: TDBGrid; // таблиця для відображення БД або

// результату виконання запиту DBNavigatorl: TDBNavigator; DBTextl: TDBText; Buttonl: TButton; // кнопка Запит

Button2: TButton; // кнопка Всі записи

var Forml: TForml; implementation

// клацання на кнопці Запит procedure TForml.ButtonlClick (Sender: TObject); var fam: string [30]; begin fam: = InputBox ( 'Вибірка інформації з БД', 'Вкажіть прізвище та клацніть на ок.1, "); if f am про' 'then begin // користувач ввів прізвище with forml.Queryl do begin Close; // закрити результат виконання попереднього запиту SQL.Clear; // видалити текст попереднього запиту

// формуємо новий запит

Open; // активізуємо виконання запиту

if Queryl.RecordCount <> 0 then DataSourcel.DataSet: = Queryl // відобразити результат

else begin ShowMessage ( 'В БД немає записів, які відповідають' +

// клацання на кнопці Все записи

procedure TForml.Button2Click (Sender: TObject); begin DataSourcel.DataSet: = Tablel; // джерело даних - таблиця

Процедура TForml.Buttoniciick запускається натисканням кнопки Запит. Вона приймає від користувача рядок (прізвища) і, записуючи (додаючи) рядки в властивість sql формує текст запиту. Потім ця процедура, викликаючи метод open, активізує виконання запиту.

Зверніть увагу на те, що перед зміною властивості sql запит повинен бути закритий за допомогою методу Close (тут треба згадати, що результат виконання запиту - це файл даних (таблиця), який створюється в результаті виконання запиту).

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

Наприклад, для запиту:

FROM ": Школа: s choo1.db"

(Class = 40a ') ORDER BY Name, Fam інструкція заміни критерію запиту може бути такою:

Зверніть увагу на те, що властивість sql є структурою типу TStrings, в якій рядки нумеруються з нуля.







Схожі статті