77983

Компоненты для создания приложений БД

Лекция

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

Для использования компонента TDBText нужно: указать в свойстве property DtSource: TDtSource; имя соответствующего компонента TDtSource связанного с НД; указать в параметре property DtField: String; имя поля. Поэтому для TDBEdit необходимо указывать свойства property DtSource: TDtSource; имя компонента DtSource определяющего НД; property DtField: string; имя редактируемого поля; property RedOnly: Boolen; если содержит True значение поля доступно только для чтения если Flse значение поля можно изменять. Свойство property Text:...

Русский

2015-02-05

183 KB

10 чел.

Компоненты для создания приложений  БД

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

  1.  Компоненты — наборы данных (data set), непосредственно связывающиеся с базой данных. Для BDE это такие компоненты, как Table, Query, StoredProc, BDEClientDataSet. Для других технологий, рассмотренных в главе 11, имеются аналогичные компоненты наборов данных.
  2.  Компонент — источник данных (Data Source), осуществляющий обмен информацией между компонентами первого типа и компонентами визуализации и управления данными. Таким компонентом является DataSource.
  3.  Компоненты визуализации и управления данными, такие, как DBGrid, DBText, DBEdit и множество других.

Эти объекты могут быть разделены на три группы:

  •  невизуальные: TTable, TQuery, TDataSet, TField
  •  визуальные: TDBGrid, TDBEdit
  •  связующие: TDataSource

Первая группа включает невизуальные классы, которые используются для управления таблицами и запросами. Эта группа сосредотачивается вокруг компонент типа TTable, TQuery, TDataSet и TField. В Палитре Компонент эти объекты расположены на странице BDE.

Вторая важная группа классов - визуальные, которые показывают данные пользователю, и позволяют ему просматривать и модифицировать их. Эта группа классов включает компоненты типа TDBGrid, TDBEdit, TDBImage и TDBComboBox. В Палитре Компонент эти объекты расположены на странице Data Controls.

Имеется и третий тип, который используется для того, чтобы связать предыдущие два типа объектов. К третьему типу относится только невизуальный компонент TDataSource. В Палитре Компонент расположен на странице Data Access.

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

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

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

  •  Name – имя компоненты (по умолчанию Table1);
  •  DatabaseName - база данных ;
  •  TableName - имя таблицы .

Свойство DatabaseName определяет базу данных, в которой находится таблица. Это свойство может содержать:

  •  BDE алиас;
  •  директорий для локальных БД ;
  •  директорий и имя файла базы данных для Local InterBase ;
  •  локальный алиас,  определенный через компонент TDatabase.

Свойство TableName определяет имя таблицы базы данных.

Для связи визуальных компонент с таблицей БД используют компонету DataSource. Необходимо изменить свойство DataSet à на имя компоненты Table, в результате произойдет связь физической БД с визуальными компонентами.

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

Для работы с базами данных используються следующие визуальные компоненты:

  1.  DBGrid
  2.  DBEdit
  3.  DBText
  4.  DBCheckBox
  5.  DBRadioGroup
  6.  DBMemo
  7.  DBListBox
  8.  DBComboBox
  9.  DBImage
  10.  DBNavigator

Компонент TDBGrid используется для показа содержимого записей НД в табличном формате, когда строки соответствуют записям НД, а столбцы -полям записи (рис. 51):

Рис. 51 – Использование компоненты TDBGrid

В таблице 23 представлены  свойства, методы и события компоненты.

Таблица 23 -  Свойства и методы компоненты ListBox

Название

Назначение

Свойства

Name

Наименование компоненты (по умолчанию DBGrid1)

DataSource

содержит имя компонента TDataSource, который ссылается на соответствующий НД (компоненты TTable или TQuery).

Columns

Вызов редактора столбцов

Для того чтобы использовать редактор столбцов необходимо:

1 Вызвать редактора полей для набора данных DBGrid (нажав на свойстве Columns).

2) Явно добавить все поля в редакторе полеи (рис. 52);

Рис. 52 – Использование редактора полей

3) В инспекторе объектов выбрать необходимое поле  и изменить значение свойств (рис. 53):

Рис. 53 – Использование редактора полей

Свойства полей БД представлены в таблице 24.

Таблица 24 – Свойства полей БД

Свойство

Назначение

Aligment

Определяет выравнивание значений в столбце. По умолчанию TField. Aligment.

BultonStyle

Определяет тип кнопки, появляющейся в столбце в режиме редактирования: cbsAuto (по умолчанию) - автоматическая установка (показывает кнопку раскрытия выпадающего списка возможных значений, если столбец может принимать лишь одно из значений, определенных связью с иным НД, или списком свойства PickList); cbsEllipse - показывает кнопку (...) в столбце справа; обработчик нажатия кнопки соответствует обработчику события OnEditButtonCUck; cbsNone - никакой кнопки в столбце нет.

Color

Определяет цвет фона столбца. По умолчанию TDBGrid.Color.

DropDownRows

Если столбцу назначен выпадающий список возможных значений (посредством связи с другим НД или в свойстве PickList}, определяет число строк в нем. По умолчанию равно 7.

FieldName

Определяет поле ТБД, ассоциированное с данным постоянным столбцом. Может быть пустым (см. "Пустые постоянные столбцы").

Readonly

Определяет возможность редактирования столбца из TDBGrid [True) или невозможность этого {False, по умолчанию).

Width

Определяет ширину столбца в пикселах. По умолчанию значение извлекается из TField. DisplayWidth, где, заметим, ширина дается в символах.

Font

Определяет тип, размер и цвет шрифта для вывода значений в столбце. По умолчанию TDBGrid.Font

PickList

В случае, если для занесения значений в столбец используется раскрывающийся список возможных значений (кроме случая связи с иным НД), определяет этот список

Свойство Title определяет заголовок постоянного столбца, представлены в таблице 25:

Таблица 25 – Свойства Title

Подсвойство

Назначение

Aligment

Определяет выравнивание заголовка. По умолчанию -влево.

Caption

Определяет текст заголовка. По умолчанию TField. DisplayLabel или имя поля ТБД.

Color

Определяет цвет фона заголовка. По умолчанию TDBGrid.FixedColor.

Font

Определяет тип, размер и цвет шрифта. По умолчанию TDBGrid.TitleFont.

  1.  Чтобы изменить заголовки столбцов в TDBGrid, следует в инспекторе объектов нужным образом изменить значения свойств Display'Label для каждого поля.

В том случае когда столбцы таблицы (т е поля записи) определены с использованием редактора полей как компоненты типа TField столбцы показываются в сетке TDBGrid в том состоянии которое определяется их текущими свойствами Если то или иное свойство столбца можно менять в процессе выполнения приложения эти изменения немедленно отобразятся в TDBGrid Например в ходе выполнения можно менять ширину столбца (свойство компонента TField Display Width) его видимость (Visible) возможность редактирования значения столбца (ReadOnlv) порядковый номер (Index) заголовок столбца (Display Label).

Компонент TDBText применяется для показа значения текстового поля текущей записи НД. Изменять значение, показываемое при помощи TDBText, нельзя. Компонент является аналогом компонента TLabel, за исключением того, что значение для отображения берется из текущей записи НД.

Для использования компонента TDBText нужно:

• указать в свойстве property DataSource: TDataSource; имя соответствующего компонента TDataSource, связанного с НД;

• указать в параметре property DataField: String; имя поля. При заполненном свойстве DataSource в инспекторе объектов, когда мы устанавливаем значение свойства DataField, появляется список:

- имен полей, определенных в редакторе полей;

- имен всех полей НД, на который ссылается соответствующий компонент TDataSource, ест редактор полей не

Компонент TDBEdit позволяет редактировать значение строкового поля текущей записи НД. Он повторяет функциональность компонента TEdit (позволяющего корректировать значение переменной), но источником данных и их приемником в этом случае служит поле НД. Поэтому для TDBEdit необходимо указывать свойства

property DataSource: TDataSource; - имя компонента DataSource, определяющего НД;

property DataField: string; - имя редактируемого поля;

property ReadOnly: Boolean; - если содержит True, значение поля доступно только для чтения, если False - значение поля можно изменять.

Свойство property Text: string; хранит текущее содержимое поля НД в текстовом виде.

Событие property OnChange: TNotifyEvent; наступает при изменении значения поля.

События property OnEnter: TNotifyEvent; property OnExit: TNotifyEvent; наступают при получении и утрате фокуса управления компонентом TDBEdit.

Компонент TDBCheckBox позволяет "отметить" и "снять отметку" с логического поля в составе текущей записи НД.

Он обладает функциональностью компонента TCheckBox, но источником данных и их приемником в этом случае служит поле НД.

Свойства property DataSource: TdataSource; property DataField: string;. property ReadOnly: Boolean; имеют такое же назначение, как и аналогичные свойства компонента TDBEdit.

Свойство

property Checked : Boolean;

позволяет определить, отмечено поле, на которое ссылается TDBCheckBox (значение True) или не отмечено (False).

Свойство

property State: TCheckBoxState;

возвращает состояние поля. Возможные значения:

cbUnchecked- поле не отмечено;

cbChecked - поле отмечено;

cbGrayed - промежуточное состояние, когда поле не отмечено, но в нем показывается серый символ отметки. Он означает, что поле не содержит ни True, ни False, а содержит пустое значение. Именно это состояние присуще компоненту DBCheckBoxl при добавлении записей в приводившемся выше примере. Добиться того, чтобы во вновь добавляемых записях поле Uzenka по умолчанию содержало значение False можно в обработчике события OnNew Record компонента Table1 (событие наступает всякий раз при добавлении новой записи):

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

Свойство

property ValueChecked: string;

устанавливает значения поля, при которых TDBCheckBox переходит в состояние cbChecked. При наличии нескольких значений они разделяются точкой с запятой:

DBCheckBox1.ValueChecked := 'True;Yes;On;Дa;Д';

Свойство

property ValueUnchecked: string;

устанавливает значения поля, при которых TDBCheckBox переходит в состояние cbUnchecked. При наличии нескольких значений они разделяются точкой с запятой:

DBCheckBoxl.ValueUnchecked := 'False;No;Off; Нет;Н';

События

property OnEnter: TNotifyEvent;

property OnExit: TNotifyEvent;

наступают при получении и утрате фокуса управления компонентом.

Событие

property OnClick: TNotifyEvent;

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

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

Свойства

property DataSource : TDataSource;

property DataField: string;

property ReadOnly: Boolean;

аналогичны по назначению одноименным полям компонента TDBEdit.

Напомним, что число и названия вариантов возможных значений поля, содержащихся в TDBRadioGroup, определяются в его свойстве Items: TStrings.

Свойство property Value: string; возвращает значение поля, связанного с компонентом TDBRadioGroup, в текстовом виде.

Свойство property Columns: Integer указывает, сколько назначено столбцов для вывода переключателей (в примере на рис. 11.4. Columns = 2

Событие property OnChange: TnotifyEvent наступает при изменении значения поля, связанного с компонентом TDBRadioGroup.

События property OnEnter: TNotifyEvent; property OnExit: TNotifyEvent; наступают при получении и утрате фокуса управления компонентом.

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

Свойства property DataSource : TDataSource; property DataField: string; property ReadOnly: Boolean; аналогичны по назначению одноименным свойствам компонента TDBEdit.

Свойство property Items: TStrings; содержит список возможных значений поля.

События property OnEnter: TNotifyEvent; property OnExit: TNotifyEvent; наступают при получении и утрате фокуса управления компонентом TDBEdit.

События property OnClick: TNotifyEvent; property OnDblClick: TNotifyEvent; наступают при одиночном и двойном щелчке мышью на компоненте TDBListBox

Компонент TDBComboBox аналогичен компоненту TDBListBox, за исключением того, что в режиме dsBrowse текущее значение поля показывается аналогично TDBEdit, а в режимах добавления (dslnsert) и редактирования (dsEdit) при занесении значения в поле появляется "выпадающий список". Длина списка в строках определяется свойством property DropDownCount: Integer;

Компонент TDBMemo предназначен для показа мемо-полей (полей комментариев). Поля комментариев могут хранить многострочные тексты. Компонент TDBMemo является аналогом компонента TMemo с той лишь разницей, что источником данных в этом случае служит поле комментария набора данных.

При корректировке текста комментария в компоненте TDBMemo набор данных, к которому принадлежит поле комментария, автоматически переводится в состояние dsEdit.

Свойство AutoDisplay: Boolean; в состоянии True указывает на необходимость того, чтобы любые изменения в поле НД автоматически отображались и в TDBMemo. В состоянии False подобные действия не производятся и обновление информации в TDBMemo необходимо производить программно.

Свойство Alignment; TAlignment; определяет выравнивание текста в TDBMemo - влево (taLeftJustify), вправо (taRightJustify), по центру (taCenter).

Свойство WordWrap : Boolean; в состоянии Тгие разрешает показывать с новой строки те слова, которые не умещаются в области показа (при этом свойство ScrollBars не должно определять линию горизонтальной прокрутки). В состоянии False этого не происходит .

Свойство ScrollBars : TScrollStyle; определяет полосы прокрутки в окне TDBMemo. отсутствие полос прокрутки (ssNone), горизонтальную (ssHorizonlal), вертикальную (ssVertical) и обе (ssBoth).

Свойство Lines: TStrings; содержит строки поля комментария. Для работы с Lines допустимо (и рекомендуется) использовать свойства и методы класса TStrings. Приведем наиболее важные из них:

• Count: Integer; Возвращает общее число строк в Lines.

• Memol.Lines[i] : String; Позволяет обратиться к i-й строке. При этом i принадлежит к интервалу 0..Lines.Count -1.

Компонент  DBImage позволяет отображать графические поля из БД. Свойство Stretch (типа Boolean ) позволяет увеличивать или уменьшать рисунок по компоненте.

Компонент  DBNavigator позволяет выполнять навигацию и изменение в таблице БД. На рисунке 54  представлен общий вид компоненты.

Рис. 54 – Кнопки навигации компоненты DBNavigator

Назначения кнопок  представлены в таблице 26.

Таблица 26 – Кнопки DBNavigator

Номер кнопки

Название

Назначение

nbFirst

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

nbPrior

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

nbNext

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

nbLast

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

nbInsert

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

nbDelete

Удаление текущей записи

nbEdit

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

nbPost

Послать отредактированную запись в БД

nbCancel

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

nbRefresh

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

С помощью свойства VisibleButtons можно выбрать только необходимые кнопки в компоненте, установив свойство true или False для каждой кнопки.

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

Рис. 55 – Общий вид использования визуальных компонент


 

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

82324. Международное положение современного Казахстана 33.2 KB
  Казахстан вышел на мировую арену как полноценный субъект международного права За две недели до конца 1991 г. независимость Казахстана признали 18 государств среди них: Турция США. В первый год независимости Казахстан признали 108 стран мира 70 из них открыли дипломатические представительства.
82325. Главные достижения страны за годы независимости 30.23 KB
  30 августа 1995 года на всенародном референдуме принимается ныне действующая Конституция Республики Казахстан. Акмола связанное с геополитическими экономическими причинами развития Казахстана. Разработана и принята к реализации Программа О мерах по реализации стратегического развития Казахстана до 2030 года.
82326. Принятие государственных документов независимости и государственных символов Казахстана. Авторы государственных символов 29.68 KB
  Самостоятельно определяет и проводит внутреннюю и внешнюю политику. С государствами мира строит свои взаимоотношения на принципах международного права. Главой РК и ее исполнительной власти является Президент. Высшая законодательная власть принадлежит Парламенту РК.
82327. Саки. Территория их расселения. Хозяйство, общественное устройство и культура 36.53 KB
  В эпоху раннего железного века на территории Казахстана были сформированы первые племенные союзы, которые известны под именем саков. Саки это группа племен, в которую входила: даха (массагеты), саки - рауки (тиграхауда), исседоны, аримаспы и другие.
82328. Казахстан в послевоенный период (1946-1950). Социально- политическое развитие 29.84 KB
  Из войны Советский Союз вышел экономически значительно ослабленным. За время войны было разрушено 1710 населенных пунктов городского типа и 70 тысяч деревень и селений 25 млн. Последствия войны оказались нелегкими и для Казахстана. Рабочие и специалисты эвакуированные в годы войны в Казахстан вернулись на родину.
82329. Казахстан в период завоевательных подходов Чингиз хана 41.46 KB
  Чингисхан родился на берегу реки Онон в Монголии около 1155 г. (по другим источникам 1162), первоначально носил имя Темучин (Темуджин). Согласно монгольскому преданию, Темучин происходил из рода кият. Его мать была из племени конграт
82330. Освоение целинных земель в Казахстане – 1954-1956гг. Цели, результаты, последствия 30.79 KB
  В период массового освоения целинных земель много говорилось об интенсификации процесса, укреплении материально-технической базы. Но в условиях экстенсивного земледелия это зачастую не соблюдалось. В результате нарушался экологический баланс (эрозия почв, выветривание почв).
82331. Образование Казахского ханства 29.72 KB
  Вхождение отдельных казахских племен в разные государства, войны и раздоры между родами и племенами стали преградой на пути их объединения в единую народность. Преодолеть эту раздробленность, политическую разобщенность выпало на долю султанов Жаныбека и Керея
82332. Состояние жизненного уровня трудящихся в 50-е гг. События в Темиртау (1958г.) 35.21 KB
  События в Темиртау 1958г. Особенно крупный взрыв недовольства произошел летом 1959 года в городе Темиртау. Строящийся в Темиртау металлургический комбинат был объявлен ударной комсомольской стройкой и до конца 1958 года в область прибыли 132 тыс. например из двух тысяч болгар трудившихся в Казахстане свыше половины работали в Темиртау.