Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Выбор информации из базы данных
При работе с базой данных пользователя, как правило, интересует не все ее содержимое, а некоторая конкретная информация. Найти нужные сведения можно последовательным просмотром записей. Однако такой способ поиска неудобен и малоэффективен. Большинство систем управления базами данных позволяют произвести выборку нужной информации путем выполнения запросов. Пользователь в соответствии с определенными правилами формулирует запрос, указывая, каким критериям должна удовлетворять интересующая его информация, а система выводит записи, удовлетворяющие запросу. Для выборки из базы данных записей, удовлетворяющих некоторому критерию, предназначен компонент Query (рис. 17). Рис. 17. Значок компонента Query Компонент Query похож на компонент Table, но, в отличие от последнего, он представляет не всю базу данных (все записи), а только ее часть — записи, удовлетворяющие критерию запроса. В табл. 17.18 перечислены некоторые свойства компонента Query. Таблица 18. Свойства компонента Query
Для того чтобы во время разработки программы задать, какая информация будет выделена из базы данных в результате выполнения запроса, свойство SQL должно содержать представленный на языке SQL запрос на выборку данных. В общем виде запрос на выборку из таблицы данных выглядит так: SELECT Список-Полей FROM Таблица WHERE (Критерий) ORDER BY СписокПолей где:
Например, запрос SELECT Fam, Name FROM ':Школа:school.db' WHERE
(Class = '10a') ORDER BY Name, Fam обеспечивает выборку из базы данных "Школа" (из таблицы School.db) записей, у которых в поле class находится текст 10а, т. е. формирует упорядоченный по алфавиту список учеников 10-а класса. Другой пример. Запрос SELECT Fam, Name FROM ":Школа:school.db" WHERE (Fam > 'K') and (Fam < 'Л') ORDER BY Name, Fam обеспечивает выбор информации об учениках, фамилии которых начинаются на букву К. Запрос может быть сформирован и записан в свойство SQL во время разработки формы или во время работы программы. Для записи запроса в свойство SQL во время разработки формы используется редактор списка строк (рис. 18), окно которого открывается в результате щелчка на кнопке с тремя точками в строке свойства SQL окна Object Inspector. Рис. 18. Пример запроса к базе данных "Школа" Свойство SQL представляет собой список строк. Поэтому чтобы сформировать запрос во время работы программы, нужно, используя метод Add, добавить строки (SQL-инструкции) в список SQL. Ниже приведен фрагмент кода, который формирует запрос на поиск информации о конкретном человеке (критерий выбора — содержимое поля Fam должно совпадать со значением переменной fam). with forml.Queryl do begin Close; // закрыть файл — результат выполнения // предыдущего запроса SQL.Clear; // удалить текст предыдущего запроса // записываем новый запрос в свойство SQL SQL.Add('SELECT Fam, Name, Class1); SQL.Add('FROM ":Школа:school.db"'); SQL.Add('WHERE'); SQL.Add('(Fam = '" + fam + '")'); SQL.Add('ORDER BY Name, Fam'); Open; // активизируем выполнение запроса end; Следующая программа, ее текст приведен в листинге 2, а диалоговое окно — на рис. 19, демонстрирует возможность изменения запроса, точнее, критерия запроса, во время работы программы. Программа обеспечивает вывод как всего списка учеников, так и его части. Например, посредством выполнения запроса выводится информация только о конкретном ученике. Для просмотра базы данных и результата выполнения запроса используется компонент DBGrid1, который через компонент DataSourcel взаимодействует с компонентом Table1 (при просмотре всей базы данных) или с компонентом Query (при просмотре результата выполнения запроса). Рис. 19. Форма приложения База данных Школа
Листинг 2. База данных "Школа" unit school2_; interface uses Graphics, Controls, Forms, Dialogs,Grids, DBGrids, Db, DBTables, ExtCtrls, DBCtrls, StdCtrls; type var implementation {$R *.DFM} // щелчок на кнопке Запрос { *** другой вариант изменения критерия запроса // щелчок на кнопке Все записи // активизация формы End. Процедура TForm1.Button1Click запускается щелчком кнопки Запрос. Она принимает от пользователя строку (фамилии) и записью (добавлением) строк в свойство SQL формирует текст запроса. Затем эта процедура вызовом метода Open активизирует выполнение запроса. Следует обратить внимание на то, что перед изменением свойства SQL-запрос должен быть закрыт при помощи метода close (здесь надо вспомнить, что результат выполнения запроса — это файл данных (таблица), который создается в результате выполнения запроса). Процедура TForm1.Button2Click, которая запускается щелчком кнопки Все записи, устанавливает в качестве источника данных для компонента DataSourcel компонент Table1, тем самым обеспечивая переход в режим просмотра всей базы данных. Если запрос записан в свойство SQL во время разработки формы приложения, то во время работы программы критерий запроса можно изменить простой заменой соответствующей строки текста запроса. Например, для запроса SELECT DISTINCT Fam, Name, Class FROM ":Школа:school.db" WHERE (Class= '10а') ORDER BY Name, Fam инструкция замены критерия запроса может быть такой: forml.Query1.SQL[3]:='(Fam="' + fam+ '")' Следует обратить внимание на то, что свойство SQL является структурой типа TStrings, в которой строки нумеруются с нуля.
|
||||||||||||||||||||||
Последнее изменение этой страницы: 2021-12-15; просмотров: 39; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.17.208.206 (0.012 с.) |