12152

КОМПОНЕНТЫ, ИСПОЛЬЗУЕМЫЕ ДЛЯ СВЯЗИ С БАЗАМИ ДАННЫХ

Лекция

Информатика, кибернетика и программирование

КОМПОНЕНТЫ ИСПОЛЬЗУЕМЫЕ ДЛЯ СВЯЗИ С БАЗАМИ ДАННЫХ Обзор компонентов используемых для связи с базами данных Компоненты Delphi используемые для работы с базами данных расположены в библиотеке компонентов на страницах Data Access доступ к данным и Data Control управл

Русский

2013-04-24

66 KB

6 чел.

КОМПОНЕНТЫ, ИСПОЛЬЗУЕМЫЕ ДЛЯ СВЯЗИ

С БАЗАМИ ДАННЫХ

  1.   Обзор компонентов, используемых для связи с базами данных

Компоненты Delphi, используемые для работы с базами данных, расположены в библиотеке компонентов на страницах Data Access (доступ к данным) и Data Control (управление данными).

Каждое приложение, использующее базы данных, обычно имеет, по крайней мере, по одному компоненту следующих трех типов:

  •  компоненты-наборы данных (data set), непосредственно связывающиеся с базой данных. Это компоненты Table, Query, StoredProc;
  •  компонент-источник данных (data source), осуществляющий обмен информацией между компонентами первого типа и компонентами визуализации и управления данными. Таким компонентом является DataSource;
  •  компоненты визуализации и управления данными, такие, как DBGrid, DBText, DBEdit, DBNavigator и множество других.

Связь этих компонентов друг с другом и с базой данных можно представить схемой:

Еще один компонент Session является главным компонентом любого приложения, работающего с базами данных. Он автоматически создается Delphi во время работы приложения с базами данных.

  1.   Компонент Table

4.2.1 Установление связей

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

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

  1.  Table;
  2.  DataSource;
  3.  DBGrid.

1) и 2) компоненты невизуальные. Компонент 3) отвечает за отображение данных из выбранного источника, поэтому его целесообразно растянуть на форме пошире или установить значение свойства Align равным alClient.

Теперь необходимо установить цепочку связей между данными компонентами. Главное свойство компонента DBGrid и других компонентов визуализации и управления данными – DataSource. Установив значение этого свойства равным имени компонента-источника данных, расположенного на форме, можно установить связь между компонентом отображения данных и компонентом-источником данных.

Связь между источником данных и набором данных можно осуществить при помощи свойства DataSet компонента DataSource. Если на форме имеется несколько компонентов-наборов данных, то из выпадающего списка в значении данного свойства необходимо выбрать имя интересующего вас компонента (Table, Query и т. п.).

Связь между компонентом-набором данных типа Table и конкретной таблицей данных осуществляется с помощью двух свойств: DatabaseName и TableName. Прежде всего, следует установить свойство DatabaseName. В выпадающем списке этого свойства в Инспекторе Объектов можно увидеть все доступные BDE псевдонимы баз данных. Из этого списка необходимо выбрать тот псевдоним, который вы определили ранее для вашей базы. Затем необходимо установить значение свойства TableName. В выпадающем списке этого свойства перечислены все таблицы, доступные в выбранной базе данных.

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

Если запустить проект на выполнение, то можно просмотреть данные, хранящиеся в таблице, отредактировать их или дополнить новыми записями. Заполнять можно поля практически всех типов, за исключением тех из них, которые требуют хранения данных в отдельных файлах (memo, graphic и т.п.)

Следует помнить, что заранее выставлять для таблиц Active=true допустимо только в процессе настройки и отладки приложения, работающего с локальными базами данных. В законченном приложении во всех таблицах сначала должно быть установлено Active=false, а затем при событии формы OnCreate эти свойства могут быть установлены в true командой типа Table1.Active:=true; а при событии формы OnDestroy эти свойства опять должны быть установлены в false. Такие действия исключат неоправданное поддержание связи с базой данных, которое занимает ресурсы, а при работе в сети мешает доступу к базе данных других пользователей.

В приложение, использующее базы данных, полезно добавить еще один компонент, управляющий работой с таблицей – навигатор DBNavigator, расположенный на странице Data Control. Данный компонент имеет ряд кнопок, служащих для управления данными:

Кнопка

Пиктограмма

Назначение

nbFirst

перемещение к первой записи

nbPrior

перемещение к предыдущей записи

nbNext

перемещение к следующей записи

nbLast

перемещение к последней записи

nbInsert

вставить новую запись перед текущей

nbDelete

удалить текущую запись

nbEdit

редактировать текущую запись

nbPost

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

nbCancel

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

nbRefresh

очистить буфер, связанный с набором данных

Свойство VisibleButtons позволяет определить необходимый набор кнопок, убрав те из них, которые не нужны в данном приложении (для этого необходимо изменить true на false).

Чтобы приложения работало с навигатором, необходимо определить его основное свойство  DataSource.

4.2.2 Свойства полей

Каждое поле представляет собой объект, класс которого зависит от типа поля: TStringField, TSmallintField, TBooleanField и т.п. Все эти классы являются производными от TField – базового класса полей. Таким образом, каждое поле является объектом и обладает множеством свойств.

1. Упорядочивание записей.

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

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

2. Выбор полей для отображения на форме.

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

С помощью Редактора Полей можно также проектировать пользовательские формы просмотра таблицы Change. Такие формы просмотра отображают содержимое одной записи, а перемещение по записям осуществляется с помощью навигаторов.  

3. Параметры отображения полей.

Свойство любого поля DisplayLabel соответствует заголовку столбца данного поля. (Для сравнения Name и Caption).

Свойство Alignment определяет выравнивание отображаемого текста внутри колонки таблицы.

Свойство DisplayWidth определяет ширину колонки – число символов.

Свойства EditMask для строк и EditFormat для чисел определяют форматы отображения данных.

Свойства MinValue и MaxValue устанавливают допустимые пределы вводимых в поле значений.

4. Отображение значений в логических полях.

Для логических полей свойство DisplayValues определяет, какие значения должны отображаться, если поле имеет значение true или false. Отображаемые значения разделяются точкой с запятой. Первым пишется значение, соответствующее true. Например, «да;нет» или «м;ж» или «есть;нет» и т.д.

4.2.3 Фильтрация данных

Компонент Table позволяет отфильтровывать записи по каким-либо критериям. Это можно сделать при помощи свойств Filter, Filtered и FilterOptions. Свойство Filtered включает и выключает использование фильтра. Сам фильтр записывается в свойство Filter в виде строки, содержащей определенные ограничения на значения полей. Свойство FilterOptions определяет параметры фильтрации (запрет частичных совпадений, нечувствительность к регистру и т.п.).

4.2.4 Словари атрибутов полей

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

Создать новый словарь можно при помощи страницы Dictionary программы SQL Explorer, вызываемой опцией главного меню Database/Explorer.

  1.   Компоненты визуализации и управления данными

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

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

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

а) FieldName определяет поле таблицы, данные из которого будут размещены в выбранном столбце;

б) ButtonStyle определяет стиль ввода данных в поле текущей записи и имеет несколько значений:

cbsAuto

появление при редактировании кнопки, связанной с выпадающим списком допустимых значений

cbsEllipsis

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

cbsNone

обычное редактирование без каких-либо кнопок

в) PickList определяет выпадающий при редактировании список допустимых значений поля;

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

4.3.2 Компоненты страницы Data Control

На странице Data Control имеется ряд компонентов визуализации и управления данными, которые можно использовать в приложениях вместо компонента DBGrid, например:

1) DBText – аналог обычной метки Label, предназначенный для отображения данных некоторого поля без возможности редактирования;

2) DBEdit – аналог обычного окна редактирования Edit, предназначенный для отображения и редактирования данные полей различных типов: строка, число, логическая величина;

3) DBMemo – аналог обычного многострочного редактора Memo, предназначенный для отображения и редактирования данных поля типа Memo, а также данных любых типов.

Установите аналогию между остальными компонентами страницы и уже известными вам компонентами.

Все перечисленные компоненты имеют два основных свойства DataSource – источник данных и DataField – поле, с которым связан компонент. Характерной особенностью всех этих компонентов является отсутствие в окне Инспектора Объектов основных свойств, отображающих содержание каждого компонента (Caption в DBText, Text в DBEdit, Picture в DBImage и т.п.). Все эти свойства имеются у данных компонентов, но они недоступны по время проектирования и доступны только во время выполнения приложения.


 

А также другие работы, которые могут Вас заинтересовать

75317. Понятие “феодализма” в западноевропейской историографии 39.5 KB
  Понятие феодализма в западноевропейской историографии. Понимание феодализма в историографии XVIII в. Главными чертами феодализма некоторые из них считали политическую раздробленность и как следствие ее господство в средние века папской теократии. в определении сущности феодализма недалеко ушли от историков эпохи Просвещения хотя в отличие от них оценивали феодализм как положительное историческое явление: реакционные романтики потому что видели в нем свой политический идеал...
75318. Проблема генезиса феодализма в отечественной и зарубежной историографии 46.5 KB
  Проблема генезиса феодализма в отечественной и зарубежной историографии. Проблема генезиса феодализма и связанный с нею вопрос о путях складывания феодально зависимого крестьянства представляет трудность и с источниковедческой и с теоретической точек зрения. В советской историографии становление феодализма рассматривалось в первую очередь в аспекте вскрытия сдвигов в производительных силах в отношениях собственности...
75319. Образование государства и возникновение писаного права у франков 38.5 KB
  Образование государства и возникновение писаного права у франков. В исторических памятниках имя франков появилось начиная с III в. Франки распадались на две большие ветви приморских или салических франков от латинского слова slum что значит море живших у устья Рейна и прибрежных или рипуарских франков от латинского слова rip что значит берег живших южнее по берегам Рейна и Мааса. Из вождей франков известен Меровей при котором франки сражались против Аттилы на Каталаунских полях 451 г.
75320. Рост крупного землевладения и ослабление центральной власти у франков при преемниках Хлодвига. Объединение страны майордомами Австразии 33.5 KB
  После смерти Хлодвига началось дробление королевства. намечается обособление самостоятельных политических единиц в составе Франкского королевства: Нейстрии СевероЗападной Галлии с центром в Париже; Австразии северовосточной части Франкского королевства включавшей исконные франкские области по обоим берегам Рейна и Мааса; Бургундии территории бывшего королевства бургундов. В Нейстрии которая к моменту франкского завоевания была сильно романизована галлоримляне составлявшие и после завоевания большинство населения раньше чем в...
75321. Франция в IX-XI веках 39.5 KB
  В начале этого периода в стране имелось еще много крестьян не находившихся в какойлибо зависимости от частных лиц и подчинявшихся непосредственно короне. Вместе с тем возрастало число крестьян находившихся в личнонаследственной зависимости сервов и колонов а также жителей иммунитетных территорий. В результате все жители округи будь они в личной либо поземельной зависимости от данного или какогонибудь другого феодала или нет становились его людьми в судебноадминистративном отношении. Для по земельно и лично зависимых крестьян...
75322. Англия в XI-XII вв. Завершение феодализации английского общества 47 KB
  в Англии в основном уже господствовали феодальные порядки но процесс феодализации еще не завершился. Вильгельм со своим войском на больших ладьях переплыл ЛаМанш и высадился на юге Англии в бухте Павенси. Во главе последнего выступил избранный советом мудрых новый король Англии Гарольд. Герцог Нормандский же двинулся к Лондону захватил его и стал королем Англии под именем Вильгельма I Завоевателя.
75323. Особенности социально-экономического развития Италии в конце V- сер. XI веков 51 KB
  Особенности социальноэкономического развития Италии в конце V сер. Подвластное лангобардам коренное население Италии оставалось в сфере действия римского права. империи но не принесло Италии политического единства. Карл Великий изменил территориальноадминистративное деление своих владений в Италии: вместо герцогств были образованы 20 графств отданных в управление представителям франкской знати.
75324. Основные черты феодального строя в Западной Европе к концу XI века 32 KB
  Господствует феодальная земельная собственность в вид вотчины в сочетании с мелким индивидуальным крестьянским хозяйством. Основная масса крестьян находится уже в той или иной форме зависимости. На раннем этапе развития феодализма господствовало натуральное хозяйство; обмен был незначителен торговые связи не развиты; У лично зависимых крестьян особенно в крупных поместьях преобладала отработочная рента. Широко распространяется также натуральный оброк с крестьян находившихся в более легкой зависимости.