Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




 

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

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

 

 

 

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

 

В модуле, соответствующем созданной форме для реализации запросов, для доступа к компонентам модуля данных в разделе implementation выставить uses unit2 (если модуль данных был создан вторым).

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

 

ComboBox1.Clear;

имя_модуля_данных.ADOTable1.First;

while not имя_модуля_данных.ADOTable1.Eof do

begin

ComboBox1.Items.Add(имя_модуля_данных.ADOTable1['Sh_gr']);

имя_модуля_данных.ADOTable1.Next;

end;

ComboBox1.Sorted:=true;

ComboBox1.ItemIndex:=0;

ComboBox1Change(Self);

 

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

2. Расположить на модуле данных компонент ADOQuery (панель ADO). Для данного компонента настроить следующие свойства: в свойстве Connection выбрать ADOConnection1; в свойстве SQL щелкнуть по кнопке и в открывшемся окне набрать параметрический запрос на языке SQL.

 

Select S.*

from Stud S

where Sh_gr =:Sh_gr;

 

В данном запросе имя параметра совпадает с именем поля (запрос выбирает записи по шифру группы (поле Sh_gr)).

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

3. В Инспекторе Объектов выбрать свойство Parameters и щелкнуть по кнопке в строке этого свойства. В появившемся окне будут показаны имена всех параметров, введенных в тексте параметрического SQL-запроса. Каждому параметру из списка необходимо поставить в соответствие определенный тип и стартовое значение. Стартовое значение задавать необязательно. Раскрывают список Value и в строке Type задают тип данных (текстовый, числовой или дата).

4. Для активации запроса в свойстве Active выбрать true.

Во вкладке Events модуля данных для события onCreate в процедуре обработки события дописать:

ADOQuery1.Active:= true;

Номер компонента может быть отличным от единицы.

5. Расположить на форме для реализации запроса компоненты DataSource (панель Data Access), DBGrid (панель Data Controls).

6. В модуле, соответствующем созданной форме для реализации запросов, для доступа к компонентам модуля данных в разделе implementation выставить uses unit2 (если модуль данных был создан вторым).

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

With имя_модуля_данных.ADOQuery1 do

begin

Close;

Parameters.ParamByName('Sh_gr').Value:= ComboBox1.Items[ComboBox1.ItemIndex];

Open;

end;

 

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

 

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

9. Можно активацию параметрического запроса поставить на компонент ComboBox, событие OnChange. Для текстового поля (Fam) процедура может быть записана так:

Имя_модуля_данных.ADOQuery1.Close;

Имя_модуля_данных.

ADOQuery1.Parameters.ParamByName('Fam').Value:= ComboBox1.Items[ComboBox1.ItemIndex];

Имя_модуля_данных.ADOQuery1.Open;

 

В данном примере список находится в компоненте ComboBox1, а запрос ADOQuery1 – на модуле данных.

 

Для поля типа даты (Datpr) процедура может быть записана так:

Имя_модуля_данных.ADOQuery2.Close;

Имя_модуля_данных.

ADOQuery2.Parameters.ParamByName('Datpr').Value:= StrToDate(ComboBox2.Items[ComboBox2.ItemIndex]);

Имя_модуля_данных.ADOQuery2.Open;

В данном примере список находится в компоненте ComboBox2, а запрос ADOQuery2 – на модуле данных. Функция StrToDate преобразует строку в дату.

Для преобразования строки в целое число используют функцию StrToInt.

Для преобразования строки в вещественное число используют функцию StrToFloat.

 




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 467; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.