Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Начинающуюся с одной и той же буквы, из БД «телефонная книжка»

Поиск

Для работы с электронной телефонной книжкой как с обычной

желательно иметь возможность просматривать абонентов только с

фамилиями, начинающимися на одну букву. Для этого воспользуемся

запросом с параметром.

1. Загрузим заготовку проекта, созданную в лабораторной работе № 2.

Зададим свойству Caption формы значение «Информация о людях (запрос)».

Сразу же сохраним все составные части проекта в файлах с теми же именами,

что и прежние, но с добавлением цифры «5» в конце имени:

MyExUnitDB5.pas, MyExampleDB5.dpr.

2. Со страницы DataAccess поместим на форму Form1 компоненту Query

(Запрос).

Выберем компоненту Query1, активизируем свойство SQL и в появившемся

текстовом редакторе введем следующие строки, которые задают запрос на

языке SQL:

SELECT D.*, D1.*

FROM “<путь к файлу>\People.db” D, “<путь к файлу>\Tel.db” D1

WHERE

(D.IDPeople = D1.IDPeople) AND (D.Family Like:FirstChar).

Оператор Like позволяет отобрать записи, которые определяются

параметром FirstChar в поле Family. Затем активизируем свойство Params и в

появившемся окне редактора параметров запроса Form1.Query1 Parameters

выполним следующее. Выберем из списка Parameter Name (Название

параметра) FirstChar, в строке ввода со списком DataType (тип данных)

выберем String и в строке Value (Значение) введем А% - начальное значение.

Завершим настройку нажатием кнопки ОК.

3. Установим у свойств Active и RequestLive компоненты Query1 значение

True, используя инспектор объектов.

4. Со страницы DataAccess палитры компонент поместим на форму Form1

еще одну компоненту DataSource. Активизируем ее и установим свойство

DataSet в Query1.

5. Перейдем к форме Form1. Справа от компоненты DBGrid1 поместим со

страницы Standart палитры компонент две компоненты Label. Свойству

Caption компоненты Label6 зададим значение Постраничный, а свойству

Caption компоненты Label7 – Просмотр.

6. Ниже, под компонентами Label6 и Label7, поместим со страницы Standart

кнопку Button. Изменим ее свойство Caption на Просмотр. При нажатии на

эту кнопку будет происходить переход на новую форму, на которой будет

реализован постраничный просмотр БД «Телефонная книжка».

Активизируем ее и в появившемся обработчике события OnClick введем

следующее:

procedure TForm1.Button1Click(Sender: TObject);

begin

Form2.Visible:= True;

end;

Свойство Visible обеспечивает отображение формы на экране после своего

создания.

7. Добавим в форму Form1 со страницы Additional палитры компонент

компоненту Bevel. Поместим ее позади компонент Label6, Label7 и Button1.

Теперь эта группа компонент будет выделяться на форме. Изменим ее

свойство Style на bsRaised (она будет выпуклой).

8. Создадим теперь вышеуказанную форму. Для этого выполним следующие

действия:

8.1. Добавим в проект форму командой главного меню File|New Form.

8.2. Изменим свойство Caption формы Form2 на «Постраничный

просмотр» и сохраним форму под именем MyExUnitQuery.pas.

8.3. В тексте модуля Form2 в секции implementation напишем

следующую строчку для связи данной формы с Form1:

USES MyExUnitDB5;

Перейдем снова к форме Form1. В тексте ее модуля установим связь с

Form2, для чего в секции implementation допишем:

USES MyExUnitQuery;

8.4. В верхний левый угол формы поместим компоненту ComboBox со

страницы Standart палитры компонент. Изменим ее свойство Text на A.

Затем активизируем свойство Items и в появившемся окне редактора

введем на каждой строке последовательно по одной букве от «А» до

«Я», за исключением, быть может, букв «Ь» и «Ъ». Завершим ввод

нажатием кнопки ОК.

8.5. Со страницы Standart палитры компонент с помощью мыши

поместим рядом с компонентой ComboBox1 компоненту Button.

Изменим ее свойство Caption на «Страница». Затем активизируем

кнопку и в появившемся обработчике события OnClick введем

оператор, задающий отображение в форме результатов выполнения

запроса в компоненте Query1. Обработчик будет иметь следующий

вид:

procedure TForm2.Button1ClickSender: TObject);

Begin

WITH Form1.Query1 DO

BEGIN

Close;

Prepare;

Params[0].AsString:= ComboBox1.Text + ‘%’;

Open;

END;

end;

9. Поместим на форму Form2 еще одну компоненту Button, справа от

компоненты Button1. Изменим ее свойство Caption на Назад. При помощи

этой кнопки мы сможем вернуться к форме Form1 во время работы

приложения. Активизируем кнопку Button2 и в открывшемся обработчике

события OnClick введем следующее:

procedure TForm2.Button2Click(Sender: TObject);

Begin

Close;

end;

10. Ниже помещенных нами компонент разместим на всю оставшуюся часть

формы компоненту DBGrid со страницы DataControls палитры компонент.

Зададим свойству DataSourse значение Form1.DataSource3. При помощи

редактора списка полей Editing DBGrid1.Columns определим поля, которые

будут отображаться в таблице (эти действия были описаны в лаб./раб. №2):

Family, Name, SecName, Number, Type, задавая при этом через сложное

свойство Titel заголовки столбцов в DBGrid1: Фамилия, Имя, Отчество,

Номер, Тип соответственно.

11. Поместим в низ формы Form1, приблизительно в центр, еще одну кнопку

Button, которая в тексте модуля будет иметь имя Button2. Изменим ее

свойство Caption на Выход (выход из приложения). Активизируем ее и в

обработчике события напишем:

procedure TForm1.Button2Click(Sender: TObject);

Begin

Close;

end;

12. Запустим программу командой Run|Run. В результате появится окно, в

котором при нажатии на кнопку Просмотр появится еще одно окно, где,

выбирая в выпадающем списке разные буквы и нажимая кнопку Страница,

можем видеть, как меняется набор отображаемых записей в таблице DBGrid

в соответствии с первой буквой значения фамилии.

13. Завершим работу нажатием кнопки Выход в основном окне.

14. Сохраним все изменения в проекте.

При программном использовании TQuery следует сначала закрыть

текущий запрос и удалить все строки, которые уже могут находиться в

свойстве SQL:

Query1.Close;

Query1.SQL.Clear;

При этом всегда безопасно вызывать Close, т.к. если запрос уже закрыт,

то это не вызовет никакой ошибки. Следующим шагом является добавление

новых строк, которые необходимо выполнить, например:

Query1.SQL.Add(‘Select * From People.db’);

Можно использовать свойство Add для добавления в запрос SQL от

одной до x строк.

Для того, чтобы Delphi обработало операторы SQL и вернуло курсор с

результатами запроса, требуется написать следующий оператор:

Query1.Open;

Если возвращать курсор не обязательно, то можно сделать вызов

ExecSQL. Вызывать ExecSQL также требуется, если происходит вставка,

исключение и корректировка данных, т.е. вместо строки Query1.Open нужно

будет записать:

Query1.ExecSQL;

Query1.Refresh;

Отметим также, что операторы Select возвращают курсор и поэтому

требуют вызова Open. Delete, Insert и Update не возвращают курсор и

поэтому сопровождаются вызовом ExecSQL.

Если требуется составить серию операторов, то ускорить работу можно

за счет использования динамических запросов.

Пример № 2. Создание запроса для ограничения числа



Поделиться:


Последнее изменение этой страницы: 2017-02-21; просмотров: 221; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.168.68 (0.006 с.)