Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Источник данных. Набор данных Query представлен в Delphi компонентом Query

Набор данных Query

Набор данных Query представлен в Delphi компонентом Query. Особенностью компонента Query является то, что его записи формируются после выполнения SQL-запроса.

В отличие от набора данных Table, компонент Query может содержать записи сразу нескольких таблиц.

Данный компонент удобно использовать при работе с удаленными базами данных.

Многие свойства компонента Query несут ту же нагрузку, что и соответствующие свойства компонента Table. В таблице 3.5 мы приведем лишь те из них, которые являются специфичными для компонента Query.

Таблица 3.5. Некоторые свойства компонента Query

Название Тип свойства Описание свойства
Constrained Boolean Задает совместимость ограничений в предложении SELECT с операциями редактирования и вставки записей в таблицах Paradox и dBASE
DataSource TDataSource Указывает имя компонента TDataSource, относящегося к глав- ному набору данных, из которого берется значение ключа; этому значению должны соответствовать записи набора данных
ParamCheck Boolean Определяет, должно ли свойство Params автоматически обнов- ляться при изменении запроса в свойстве SQL во время выполнения
Params TParams Содержит параметры запроса, находящегося в свойстве SQL
RequestLive Boolean Позволяет попытаться возвратить результат запроса как «живой» набор данных, вместо таблицы «только для чтения»
SQL TStrings Содержит текст SQL-запроса
UniDirectional Boolean Определяет доступность двунаправленного курсора Borland Database Engine (BDE)

Источник данных (data source) представляет собой промежуточный элемент, который применяется для связи набора данных с визуальными компонентами. Получается как бы цепочка: «набор данных — источник данных — визуальный компонент».

Для этой цели в Delphi служит компонент DataSource. Указанный компонент имеет пять основных свойств, которые отображаются в окне инспектора объектов. Эти свойства и их краткое описание представлены в табл. 3.6.

Таблица 3.6. Свойства компонента DataSource

Название Тип свойства Описание свойства
AutoEdit Boolean Определяет, может ли набор данных автоматически перево- диться в режим модификации при попытке изменения данных пользователем. По умолчанию значение свойства — True, то есть такой перевод разрешен. В случае если вы не хотите допустить случайное изменение данных — установите значение этого свойства в False
DataSet TDataSet Служит для указания набора данных, с которым связан источник данных. Отметим, что визуальные компоненты для связи с источником данных используют свое свойство DataSource
Enabled Boolean Определяет, будут ли визуальные компоненты, связанные с этим источником данных, отображать данные из набора данных (true — да, false — нет)
Name TComponentName Задает имя источника данных. По умолчанию источники данных получают имена DataSource1, DataSource2, ј, DataSourceN
Tag LongInt Не имеет специального назначения. Применяется для хранения це- лого числа, связанного с компонентом, по усмотрению программиста

ВНИМАНИЕ. Вне зависимости от значения свойства AutoEdit есть возможность программно изменять данные в наборе данных. Кроме того, независимо от значения этого свойства пользователь может перевести набор данных в режим модификации с помощью нажатия кнопок визуального компонента DBNavigator. Таким образом, значение свойства AutoEdit влияет лишь на попытку изменения данных пользователем.

При изменении данных в наборе данных происходит генерация события OnDataChange, которое имеет тип TDataChangeEvent. Этот тип описан в Delphi следующим образом:

type TDataChangeEvent = procedure (Sender: TObject; Field: TField) of object;

Параметр Field определяет, значение какого поля было изменено. Если данные были обновлены в нескольких полях, то параметр будет содержать пустое значение (nil).

ВНИМАНИЕ. Событие OnDataChange может произойти также и в случае, когда происходит переход на другую запись набора данных. Оно возникает, если значение текущего поля старой записи отличается от значения того же самого поля новой записи. Кроме того, это событие имеет место при первоначальном открытии набора данных.

Кроме события OnDataChange, при изменении значений полей текущей записи возникает событие OnUpdateData, которое имеет тип TNotifyEvent. Такое событие происходит перед записью данных в базу данных. Таким образом, его можно использовать, например, для подтверждения внесенных изменений или отказа от них.

Связь между набором данных и источником данных обычно устанавливается на этапе проектирования приложения с помощью инспектора объектов. Delphi допускает установку или разрыв этой связи и в процессе выполнения приложения. При установлении новой связи визуальные компоненты автоматически подключатся к новому набору данных и будут отображать его значения.

Приведем пример установки и разрыва связи (листинг 3.1).

Листинг 3.1. Установка и разрыв связи с наборами данных

DataSource1.DataSet:= Table1; // установка связи с набором // данных Table1 DataSource1.DataSet:= nil; // присвоение пустого // значения свойству DataSet // разрывает связь с набором // данных DataSource1.DataSet:= Query1; // установка связи с набором // данных Query1

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

<== предыдущая лекция | следующая лекция ==>
Набор данных Table | МЧС России
Поделиться с друзьями:


Дата добавления: 2014-01-15; Просмотров: 461; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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