Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OTVET_NA_BD.docx
Скачиваний:
19
Добавлен:
08.11.2019
Размер:
916.72 Кб
Скачать

2) Мост к данным

Как было отмечено ранее, подключения данных (data connections) предоставляют мост между данными в вашем приложении и Rave отчетом. Первая вещь, которую вы должны сделать, это выбор типа подключения данных. Определяется это типом компонентов баз, которые Вы используете. Ниже приведенная таблица поможет вам сделать выбор, какой тип подключения лучше использовать:

Компонент подключения данных

Лучшее использовать с …

Как подключить

TRvCustomConnection

Массивы, обычне файлы или не TDataSet компоненты

Определить события, такие как OnFirst, OnNext, OnEOF, OnGetCols и OnGetRow.

TRvDataSetConnection

Наследники TDataSet от третьих сторон

Установите свойство DataSet соответствующему компоненту TDataSet

TRvTableConnection

TTable, заменитель TTable или его наследники

Установить свойство Table компоненты

Об именовании компонент подключения данных

Свойство Name компоненты подключения данных используется для именования подключения. Очень важно использовать уникальные имена для ваших компонент подключений, поскольку не может быть дублирования в вашем приложении. Также является хорошей практикой использование уникальных идентификатор в имени подключения, поскольку все подключения данных видны во всех других приложениях. Например, если ваше приложение называется Wizbang Object Wizard, то вы можете предварять имена префиксом WOW в каждом подключении, что бы имена ваших подключений были уникальными.

Управление видимостью подключения

Свойство Visible компоненты подключения данных используется для управления видимостью подключения для других приложений или версий визуального дизайнера, поставляемых конечному пользователю. Значение по умолчанию FALSE означает, что подключение данных будет видно только в отчете, печатаемом из того же самого приложения или из поставляемой программистом версии визуального дизайнера Rave. Значение TRUE означает, что подключения будут видны любому отчету, запущенному из любого приложения или из пользовательской версии дизайнера Rave. Хотя подключения данных видны в дизайнере конечного пользователя, они не показываются при попытке создать новое представление данных, поскольку они принадлежат приложению, запустившим данный дизайнер. Если Вы желаете сделать подключение из другого приложения доступным конечному пользователю, то лучшим методом будет создание проекта отчета с программисткой версией визуального дизайнера, в которой будут уже определены представления для внешних подсоединений данных.

Пользовательские подключения данных

В будущем, могут появиться и другие пользовательские подключения данных, написанные специально для других компонент баз данных. Смотри подробности в файле CUSTOMDB.TXT, который находится в папке с исходными текстами.

5. Настройка подключений данных Использование событий для настройки ваших подключений данных

В ы можете управлять, как данные будут поступать в ваш отчет через события компонент подключения данных. Для данных, поступающих не из баз, используйте компонент TrvCustomConnection, Вы можете предоставить доступ к вашим данным через его события. Для подключения данных из баз, используйте компоненты, такие как TRvDataSetConnection, достаточно будет переписать событие OnValidateRow. События подключений данных следующие:

Событие

Описание

OnEOF

Вызывается, когда Rave желает определить, достигнут ли конец данных. При отсутствии данных требуется вернуть значение TRUE, если больше нет строк или если вызов события OnNext был сделан за пределы последней строки.

OnFirst

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

OnGetCols

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

OnGetRow

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

OnGetSorts

Вызывается, когда Rave желает получить доступные методы сортировки.

OnNext

Вызывается, когда Rave желает переместить курсор на следующую строку.

OnOpen

Вызывается, когда Rave желает инициализировать начало сессии. Должно быть сохранено текущее состояние, что бы потом его можно было восстановить в событии OnRestore.

OnRestore

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

OnSetFilter

Вызывается, когда Rave желает фильтровать данные, такие как Master-Detail отчеты.

OnSetSort

Вызывается, когда Rave желает сортировать данные. Подробности смотри ниже.

OnValidateRow

Вызывается для каждой строки, позволяя тем сам управлять фильтрацией данных. Для пользовательских приложений, данное событие обычно не нужно, поскольку фильтрация данных через событие OnNext более эффективно. Тем не менее, данное событие очень полезно для других, более автоматизированных подключений, таких как TRvDataSetConnection. Подробности смотри ниже.

ПРИМЕЧАНИЕ:

Компонент TRvCustomConnection имеет свойства DataIndex и DataRows типа integer. Они предназначены для использования в событиях пользовательских подключений и если используются, то могут быть определены в OnFirst, OnNext и OnEOF событиях. DataIndex используется как позиция курсора, первая строка имеет номер 0. DataRows используется как счетчик строк данных. Например, если вы определяете пользовательское подключение к массиву данных, вам будет достаточно установить свойство Connection.DataRows равным количеству элементов в массиве и затем позволить Rave управлять OnFirst, OnNext и OnEOF событиями. В событии OnGetRow, Вы должны, обратиться к свойству Connection.DataIndex для определения какой элемент массива требуется вернуть назад (не забывайте, что нумерация идет с 0).

Экзаменационный билет №22

1) Т.к. внешние ключи фактически служат ссылками на кортежи в другом (или в том же самом) отношении, то эти ссылки не должны указывать на несуществующие объекты. Это определяет следующее правило целостности внешних ключей:

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

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