Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Delphi_Прак_2010.DOC
Скачиваний:
33
Добавлен:
10.11.2018
Размер:
2.31 Mб
Скачать

4.5. Параметрический запрос для поиска поля, выбранного из списка

Создание пааметрического зароса, в котором искомое значение выбирается из поля с раскрывающимся списком, осуществляется следующим образом.

1. Создать форму для реализации параметрического запроса. На форму поместить компонент ComboBox (поле с раскрывающимся списком), компонент Label (надпись), компонент Button (кнопка), компонент Table (таблица, из которой будет выбираться список), компонент DataSourse. Возможный вид формы представлен на рис. 4.1.

Рис. 4.1. Форма для выбора значения из поля со списком

Для компонента Table настраивают стандартные свойства (DataBaseName – имя базы данных (псевдоним), TableName – имя таблицы, Active – true).

Для формы в целом в событии OnActivate записывают следующую процедуру:

Table1.First;

While not Table1.Eof do

begin

ComboBox1.Items.Add(Table1.fieldByName('Sh_gr').Value);

Table1.Next;

end;

Данная процедура для компонента ComboBox создает список шифров групп, который выбирается из компонента Table1, связанного с таблицей Group.

2. Расположить на форме компоненты Query (панель BDE), DataSource (панель Data Access), DBGrid (панель Data Controls).

3. Установить для Query в свойстве DataBaseName значение псевдонима, для DataSource – в свойстве DataSet значение Query1, для DBGrid – в свойстве DataSource значение DataSource1.

4. Для Query щелкнуть в свойствах в строке SQL по кнопке …, в открывшемся окне набрать SQL-запрос. Параметрами в этом запросе являются имена, перед которыми стоят двоеточия «:».В данном запросе имя параметра совпадает с именем поля (запрос выбирает записи по шифру группы (поле Sh_gr)).

Select *

from Stud

where Sh_gr = :Sh_gr;

Закрыть окно, щелкнув по кнопке ОК.

5. В Инспекторе Объектов выбрать свойство Params и щелкнуть по кнопке … в строке этого свойства. В появившемся окне будут показаны имена всех параметров, введенных в тексте параметрического SQL-запроса. Каждому параметру из списка необходимо поставить в соответствие определенный тип и стартовое значение. Стартовое значение задавать необязательно. В строке ParamType для поля Sh_gr задать ptInputOutput, раскрыть список Value и в строке Type задать OleStr (String) (текстовое поле). Активировать запрос (в свойстве Active выставить true). Нужно русифицировать столбцы в компоненте DBGrid. Возможный вид формы представлен на рис. 4.2.

Рис. 4.2. Параметрический запрос

6. Всякий раз, когда необходимо изменить значения параметров запроса, программа должна закрыть Query, присвоить значения параметрам поиска и повторно открыть его. Это реализует процедура, которая запускается при щелчке по кнопке Найти. При этом запускается следующая процедура обработки события.

With Query1 do

begin

Close;

ParamByName('Sh_gr').Value := ComboBox1.Text;

Open;

end;

7. Сохранить произведенные изменения и проверить работу запроса. В списке выбрать нужное значение (шифр группы). Для выполнения запроса щелкнуть по кнопке Найти. Возможный результат выполнения запроса представлен на рис. 4.3.

Рис. 4.3. Результат выполнения параметрического запроса

5. СОЗДАНИЕ ОТЧЕТОВ

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