Компоненты представления данных

Получение доступа к данным из приложения. Обеспечение доступа к данным простой таблицы Paradox. Компоненты, которым могут понадобиться данные для представления. Собственные свойства компонента DBGrid. Навигация по таблице данных с помощью DBNavigator.

Рубрика Программирование, компьютеры и кибернетика
Вид лекция
Язык русский
Дата добавления 29.07.2012
Размер файла 326,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Компоненты представления данных

1. Доступ к данным

До настоящего момента мы говорили лишь о том, как получить некий абстрактный доступ к данным из приложения, опуская самую главную, с точки зрения конечного потребителя приложения БД, возможность - собственно представление данных в приложении. Для этих целей в VCL предусмотрено 2 группы компонентов - Data Access и Data Controls.

Для доступа к данным, представленным при помощи различных компонент - будь то BDE-ориентированные источники (например, Table), или ADO, IB Express, или dbExpress, используется один и тот же набор компонентов, расположенных на закладке Data Access:

DataSource - источник данных;

ClientDataSet - клиентский набор данных;

DataSetProvider - провайдер набора данных;

XMLTransform - преобразователь данных, представленных в виде XML в обычный пакет данных и обратно;

XMLTransformProvider - провайдер данных для XML-документов, осуществляющий так же их обновление;

XMLTransformClient - адаптер между XML-документом и провайдером.

Из этого списка нам интересно только первые 3 компонента, а именно DataSource, ClientDataSet и DataSetProvider. Используя набор из этих компонент, можно обеспечить доступ к данным. Причем в случае, когда речь идет о BDE и таблицах Paradox, как правило, достаточно использовать лишь один из перечисленных компонентов - DataSource. Этот компонент имеет всего 4 собственных свойства - AutoEdit, DataSet, Enabled и State. Свойство Enabled похоже на свойство Active таблицы или Connected у базы данных, т.е. делает активным или неактивным соединение. А свойство AutoEdit, будучи включенным, обеспечивает возможность правки записей без написания какого-либо дополнительного кода. Свойство State информирует о том, в каком состоянии в текущий момент находится источник данных. Ну а самое важное свойство этого компонента - это, конечно же, DataSet, которое и определяет источник данных - таблицу, запрос и т.д.

Оставшиеся ClientDataSet и DataSetProvider могут понадобиться в том случае, если требуется обеспечить кэширование записей, например, для того, чтобы представить в виде таблицы источник данных типа dbExpress.

Рассмотрим пример, когда нам требуется обеспечить доступ к данным простой таблицы Paradox. Для этого нам на форме приложения понадобятся следующие компоненты: Database и Table из BDE, а так же DataSource из Data Access.

Хотя для таблицы (компонента Table) можно указать один из определенных в BDE псевдонимов без помощи компонента Database, по сложившейся традиции, а так же в целях удобства управления приложением, все-таки предпочтительнее использовать связку из Database и Table.

Теперь для свойства AliasName компонента Database выберем название имеющегося у нас псевдонима БД (DATA1), а в качестве значения свойства DatabaseName так же напишем DATA1. Таким образом, компонент Database будет видеть «настоящий» псевдоним DATA1, а все остальные компоненты приложения - псевдоним DATA1, определенный посредством компонента Database.

Если такое положение вещей вас смущает, то в качестве значения DatabaseName можно указать любое произвольное значение, например, MyDatabase - в таком случае у других компонентов, имеющих свойство DatabaseName среди возможных значений этого свойства, будет значиться и MyDatabase.

Тем не менее, мы остановимся на начальном варианте, и перейдем к компоненту Table, для которого нам так же придется установить значения для 2 свойств - DatabaseName и TableName. Для первого укажем DATA1, для второго - customer. Чтобы убедиться, что все сделано правильно, попробуем активировать связь с БД, для чего установим в истину свойство Active. Если все было сделано верно (включая создание псевдонима DATA1 и таблицы customer, о чем речь шла в предыдущей главе), то не только свойство Active таблицы изменится на истину, но и свойство Connected компонента Database так же изменится на истину.

Последнее, что осталось сделать - это поместить на форму компонент DataSource и установить значение его свойства DataSet в Table1. Таким образом, мы получим действующую связку из 3 компонентов, обеспечивающих все этапы взаимодействия с БД - от организации локального псевдонима и управления им (Database), до выбора конкретной таблицы с возможностью управления ее параметрами (Table) и предоставления ее данных любым другим компонентам (DataSource).

2. Таблица DB Grid

Теперь настало время рассмотреть собственно компоненты, которым могут понадобиться данные для представления. Все они расположены на закладке Data Controls. Прежде всего, это, конечно, специальная таблица для баз данных - DBGrid. Этот компонент является дальнейшим развитием обычной таблицы (StringGrid), но предназначен исключительно для отображения и редактирования связанной с БД информации. Соответственно, у DBGrid нет таких свойств, как Cells, Cols и Rows, поскольку все, что выводит этот компонент - есть прямое отражение текущего содержимого связанной с ним таблицы БД.

В то же время, у компонента DBGrid предусмотрен целый ряд специальных свойств, предназначенных для взаимодействия с БД. Прежде всего, это свойство DataSource, в котором указывают имя компонента-источника данных. Так, если на форму, где уже имеются настроенные соответствующим образом невизуальные компоненты Database, Table и DataSource поместить таблицу, в свойстве DataSource которой указать DataSource1, то мы сразу же увидим содержимое таблицы customer.

Форма с таблицей БД

Следует сразу же отметить, что в качестве заголовков столбцов были использованы названия полей таблицы БД. Кроме того, можно увидеть, что столбец, содержащий числовые данные, имеет выравнивание по правому краю, а строковые - по левому. Таким образом, очевидно, что компонент DBGrid имеет более широкие возможности по оформлению таблиц, чем обычная таблица StringGrid. Возможно это благодаря другому свойству DBGrid - Columns, которое определяет оформление, количество и порядок следования столбцов с данными. Это свойство представляет собой коллекцию, состоящую из отдельных колонок таблицы. По умолчанию используется автоматический режим вывода, когда выводятся все поля данных с размерами, основанными на параметрах самих полей, заданных в выводимой таблице БД. Но поскольку во многих случаях выводить все поля не требуется, или же необходимо изменить параметры их вывода, как-то порядок следования, цвет, шрифт, или ширину поля, то все эти настройки доступны именно через свойство Columns. При этом каждый элемент этого свойства представляет собой объект типа TColumn, имеющий, в свою очередь, такие свойства, как заголовок (вместо стандартного названия поля в БД) выравнивание, цвет фона, шрифт, возможность правки и т.д. Доступ ко всем этим параметрам возможен через специальный редактор коллекций, который можно вызвать, дважды щелкнув по самой таблице в режиме разработки.

Редактирование списка столбцов

На панели инструментов редактора столбцов имеется 4 кнопки - для добавления и удаления столбцов, а так же для автоматического заполнения и для сброса к начальным установкам. Выбирая поле из списка, и изменяя его свойства в инспекторе объекта, вы тем самым изменяете параметры отображения соответствующего столбца. А меняя в редакторе строки местам (путем перетаскивания мышкой), вы меняете порядок вывода полей в самой таблице.

Таким образом, мы рассмотрели 2 наиболее важных свойства компонента DBGrid. Что касается всех собственных свойств, имеющихся у таблицы для баз данных.

Собственные свойства компонента DBGrid

Свойство Тип Описание

Columns TDBGridColumns Задает параметры вывода столбцов с данными

DataSource TDataSource Определяет источник данных для отображения в таблице

FieldCount Integer Указывает на число столбцов с данными, выводимых в таблице

Fields array of TField Предоставляет доступ к информации ячейки, находящейся в указанном столбце

Options TDBGridOption Определяет различные параметры отображения и поведения таблицы

ReadOnly Boolean Определяет, будет ли у пользователя возможность править данные в таблице

SelectedField TField Предоставляет доступ к информации в выделенной ячейке

SelectedIndex Integer Определяет номер текущего столбца

TitleFont TFont Определяет шрифт, используемый для вывода заголовков столбцов таблицы

Здесь следует отдельно выделить свойство Options, позволяющее настроить целый ряд различных параметров. Оно имеет следующие флаги:

dgEditing - Делает возможной правку данных прямо в таблице. Этот флаг игнорируется, если включен флаг dgRowSelect;

dgAlwaysShowEditor - Таблица будет постоянно находиться в режиме редактирования. В противном случае пользователь должен будет нажимать F2, Enter, или щелкать мышкой по полю, чтобы ввести новое значение;

dgTitles - Делает видимыми заголовки столбцов;

dgIndicator - Добавляет колонку, в которой будет отображаться индикатор выбранной записи;

dgColumnResize - Делает возможным изменение размеров столбцов пользователем;

dgColLines - Столбцы будут отделены разделительными линиями;

dgRowLines - Записи будут отделены разделительными линиями;

dgTabs - Делает возможной навигацию по ячейкам при помощи клавиш Tab и Shift+Tab;

dgRowSelect - Записи будут выделяться целиком. При этом правка данных в таблице становится невозможной (т.е. флаги dgEditing и dgAlwaysShowEditor будут проигнорированы);

dgAlwaysShowSelection - Выбранная ячейка будет выделена цветом даже если фокус вводе не находится на таблице;

dgConfirmDelete - Будет выдаваться предупреждение, если пользователь захочет удалить запись в таблице (при помощи Ctrl+Delete);

dgCancelOnExit - Предотвращает запись пустых записей;

dgMultiSelect - Делает возможным выбирать несколько записей одновременно (с использованием клавиши Ctrl).

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

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

3. Навигация по таблице данных

компонент доступ навигация приложение

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

Для этих целей предусмотрен специальный компонент - DBNavigator. С его помощью можно перемещаться по записям таблицы а так же выполнять операции типа вставки новой записи или подтверждения изменений. Внешне он представляет собой панель со следующими 10 кнопками:

First - переход на первую запись в таблице;

Prior - переход на предыдущую запись;

Next - переход на следующую запись;

Last - переход на последнюю запись;

Insert - вставка новой записи перед текущей;

Delete - удаление текущей записи с переходом на следующую;

Edit - переводит источник данных в режим редактирования записи;

Post - запись измененных данных из текущей записи в БД;

Cancel - отмена изменений данных в текущей записи;

Refresh - обновление данных в буфере источника.

Часть этих кнопок можно отключить, воспользовавшись свойством VisibleButtons. Еще одно свойство, влияющее на внешний вид компонента DBNavigator - это Flat. Установив его в истину, можно придать панели «плоский» вид. А при помощи свойства Hints можно задать пояснительный текст всплывающей подсказки для каждой кнопки.

Еще одно свойство - ConfirmDelete определяет поведение этого компонента: если для него установлено значение истины, то при попытке удаления записи (т.е. при нажатии на кнопку Delete) будет выдаваться соответствующее предупреждение.

Наконец, свойство DataSource, как и у всех других компонент представления данных БД, указывает на источник данных, связанных с данным компонентом.

Для примера добавим компонент навигации на форму с таблицей, подобной той, что изображена на рис. 1. Достаточно установить свойство DataSource компонента DBNavigator в то же значение, что и у одноименного свойства компонента DBGrid, чтобы получить связанно работающие компоненты. Например, при редактировании записей в таблице, состояние кнопок в навигационной панели будет изменяться в соответствии с возможными действиями.

Таблица DBGrid и панель навигации

4. Представление отдельных полей данных

Как мы уже знаем, для отображения таблиц БД в целом, используется табличный же компонент - DBGrid. В том же случае, когда надо отобразить содержимое лишь отдельных полей данных, используют соответствующие компоненты - DBEdit, DBImage, DBCheckBox и т.д., в зависимости от типа данных, которые требуется отобразить в том или ином случае.

Все эти компоненты являются специализированными вариантами обычных компонент, не связанных с БД:

DBText - аналог текстовой подписи Label;

DBEdit - аналог однострочного редактора Edit;

DBMemo - аналог многострочного редактора (блокнота) Memo;

DBImage - аналог компонента для вывода изображений Image;

DBListBox - аналог списка ListBox;

DBComboBox - аналог раскрывающегося списка ComboBox;

DBCheckBox - аналог переключателя CheckBox;

DBRadioGroup - аналог группы исключающих переключателей RadioGroup;

DBRichEdit - аналог редактора форматированного текста RichEdit.

Основным отличием ориентированных на применение совместно с базами данных компонент является наличие у них свойства DataSource, при помощи которого они связываются с источником данных. Еще одно свойство - DataField, как раз и указывает на то поле, которое должно отображаться в данном компоненте. В остальном по своим функциональным способностям они повторяют свои не ориентированные на БД аналоги.

Что касается вариантов использования, то, например, мы можем заменить таблицу в предыдущем примере на пару компонент - DBText для отображения номера и DBEdit для вывода и редактирования названия. Соответственно, мы можем заменить табличное представление данных представлением типа «форма».

Для этого, удалив таблицу и разместив на форме компоненты DBText и DBEdit, установим для них обоих свойство DataSource в значение DataSource1, после чего для свойства DataField у метки выберем значение CUST_ID, а для этого же свойства у редактора - CUST_NAME. Не помешает также разместить на форме еще и 2 обычные метки (Label), при помощи которых можно вывести текст, поясняющий, что за информация выводится в том или ином поле.

Использование отличного от таблицы формата отображения данных

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

Размещено на Allbest.ru


Подобные документы

  • Средства и технологии разработки приложений баз данных. Компоненты управления доступом к БД. Описание программного окружения доступа к данным. Механизм получения и отправки данных. Специфика связи внутреннего представления с интерфейсом приложения.

    презентация [29,4 K], добавлен 19.08.2013

  • Понятие и критерии классификации баз данных. Характеристика совокупностей элементов данных: массив, дерево, запись. Компоненты любой модели данных. Способы размещения значений элементов в физической записи. Методы доступа к данным: дерево, хеширование.

    реферат [84,7 K], добавлен 22.11.2010

  • Разработка модели и создание структуры реляционной базы данных. Организация данных в таблицах для предоставления оперативного доступа к данным. Основные структурные единицы базы данных Access: таблицы, запросы, формы, отчеты, страницы, макросы и модули.

    реферат [4,0 M], добавлен 03.02.2013

  • Виды доступа к записям базы данных. Поиск, фильтрация, добавление, удаление и изменение записей. Визуальные компоненты доступа к ним. Изменение данных средствами сервера, параметризованные запросы. Связывание элементов пользовательского интерфейса.

    презентация [7,6 K], добавлен 19.08.2013

  • Проектирование базы данных Access. Система управления базами данных. Создание и обслуживание базы данных, обеспечение доступа к данным и их обработка. Постановка задач и целей, основных функций, выполняемых базой данных. Основные виды баз данных.

    лабораторная работа [14,4 K], добавлен 16.11.2008

  • Модели баз данных. Локальная, файл-серверная, клиент-серверная и распределенная архитектуры. Технология BDE для доступа к данным. Драйверы баз данных. Создание таблицы, интерфейс программы, дерево объектов, инсталлятор. Системы визуальной разработки.

    курсовая работа [989,5 K], добавлен 04.06.2013

  • Определение базы данных и банков данных. Компоненты банка данных. Основные требования к технологии интегрированного хранения и обработки данных. Система управления и модели организации доступа к базам данных. Разработка приложений и администрирование.

    презентация [17,1 K], добавлен 19.08.2013

  • Проектирование базы данных учета посещаемости и среда разработки программного продукта. Работа с базами данных Access в Delphi: компоненты доступа к данным, создание отчетов в Delphi и запросов на языке SQL. Программа и эксплуатационная документация.

    дипломная работа [53,2 K], добавлен 16.07.2008

  • Понятие таблицы, анализ способов ее формирования и организации, особенности создания доступа по имени. Сущность хеширования данных. Преимущества и недостатки связывания. Применение бинарного (двоичного) поиска и характеристика интерфейса программы.

    курсовая работа [307,6 K], добавлен 16.06.2012

  • Блокировка файла для защиты доступа к нему со стороны других процессов в многозадачной среде операционной системы. Управление периферийными устройствами, процессами (заданиями, задачами). Планирование процессов, понятие очереди. Общий буфер данных.

    презентация [45,2 K], добавлен 23.10.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.