Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_po_BD_29-42.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
510.54 Кб
Скачать

Параметры Query.

SQL допускает использование динамических запросов, содержащих параметры. Параметры задаются в запросе с двоеточием, предшествующим имени параметра. например, если ввести в свойство SQL запрос:

Select * from pers where (year_b>:PYear) and (dep=:Dep) а потом щелкнуть в Инспекторе Объектов на свойстве Params, то откроется диалоговое окно со списком указанных в запросе параметров, в котором, выделяя параметры по очереди можно задать их сойства:

DataType

Тип данных параметра (integer, string и т.д.)

Name

Имя параметра

ParamType

Тип параметра (используется при обращении к процедурам, хранимым на сервере)

Value

Значение параметра по умолчанию

Программный доступ к параметрам во время выполнения приложения осуществляется аналогично доступу к полям набора данных. праметры явдяются объектами типа TParam, образующими массив Params, к элементам которого можно обращаться по индексу. Значения параметров, как и значения полей, определяются такими свойствами объектов-параметров, как Value, Asstring, AsInteger и т.п. Например Query1.Params[0].AsInteger:=1965; Последовательность, в которой располагаются параметры в свойстве Params, определяется последовательностью их упоминания в запросе SQL. Другой способ обращения к параметрам, в котором не надо помнить их индексы – использование их метода ParamByName. Например Query1.ParamByName(‘PYear’).AsInteger:=1965; Чтобы получить результат запроса после задания параметра, надо повторно выполнить запрос.

Основные свойства Query.

Программный доступ к полем компонента Query осуществляется с помощью свойства Fields, по индексу:  Query1.Fields[1] или методом FieldByName: Query1. FieldByName(Dep) или по имени объекта поля: Query1Dep.

Для доступа к значениям полей используются те же их свойства Value, Asstring, AsInteger и т.п. Как и в табле можно осуществлять навигацию по набору данных, устанавливать фильтры, ограничивать вводимые значения полей, кэшировать изменения.

Отличие свойства DataSource: Это свойство компонента Query позволяет строить приложения, содержащее связанные друг с другом таблицы. Например, построим приложение, в котором при перемещении по таблице Dep будут отображаться соответствующие записи из таблицы Pers:

на форму поместим компоненты Query1(DataBaseName=dbP, SQL=’Select * from Dep’), DataSource1(DataSet=Query1), DBGrid1(DataSource=DataSource1).

на форму поместим компоненты Query2(DataBaseName=dbP, SQL=’Select * from Pers’), DataSource2(DataSet=Query2), DBGrid2(DataSource=DataSource2).

Компоненты DBGrid будут отображать данные из таблиц независимо.

Если изменить в Query2

SQL=’Select * from Pers Where (Dep=:Dep)’

и в свойстве DataSource компонента Query2 задать источник, связанный с таблицей Dep:

Query2. DataSource= DataSource1, это скажет приложению, что оно должно взять значение параметра :Dep из текущей записи этого источника данных, в качестве параметра будет взято текущее значение этого поля.

Таким образом вспомогательная таблица окажется связанной с головной таблицей

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