
- •«Современные методы разработки программ». Этапы решения задачи
- •Постановка задачи.
- •Техническое задание
- •Разработка структуры базы данных
- •Написание кодов
- •Отладка и внедрение
- •База данных
- •Поля таблицы
- •Ключи и индексы.
- •Способы доступа к данным.
- •Связь между таблицами.
- •Создание базы данных
- •Псевдонимы базы данных
- •Создание таблицы
- •Задание полей
- •Задание свойств таблицы (Table properties)
- •Свойство Validity Checks – проверка правильности значений.
- •Свойство Table Lookup – таблица просмотра
- •Свойство Table Language – язык таблицы
- •Изменение структуры таблицы с помощью Database Desktop
- •Изменение в реестре для корректного отображения русского языка
- •О бзор компонентов Delphi, используемых для связи с бд.
- •Форма модуль данных Data Module
- •Компонент Database
- •Компонент Table
- •Свойства, которые доступны программным путем
- •Методы компонента tTable
- •События компонента tTable.
- •К омпонент Query
- •Свойство sql
- •Query и Параметры
- •К омпонент DataSource
- •Свойства
- •События
- •Компонент dbNavigator
- •Компоненты визуализации и управления данными со страницы Data Control Компонент dbGrid
- •События
- •Другие компоненты визуализации
- •П ример простейшего приложения с использованием компонента Table
- •Основы языка sql. Общие сведения.
- •Отбор данных из таблиц. Оператор выбора Select
- •Совокупные характеристики
- •Вложенные запросы.
- •Объединение таблиц.
- •Соединение union
- •Модификация записей Вставка записи
- •Values(‘Орлов’,’Александр’,’Иванович’,’м’,’23.04.1981’,’Гродно’)
- •Редактирование записи
- •Удаление записи
- •Операции с таблицами Создание таблицы
- •Изменение структуры таблицы
- •Удаление таблицы
- •Операции с индексами
- •Создание индекса
- •Удаление индекса
События
OnDrawColumnCell Для того чтобы в DBGrid изменить цвет отдельных записей можно использовать событие onDrawColumnCell. Например, выводить записи красным цветом тех людей, которые родились не в Гродно:
procedure Tfgl.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if datamodule1.Queryosndan.FieldByName('mestor').Asstring<>'Гродно' then
DBGrid1.Canvas.Font.Color:=clred;
DBGrid1.DefaultDrawColumnCell(Rect, dataCol,column,State);
end;
Другие компоненты визуализации
Компонент DBText – аналог обычной метки Label, но связанный с данными. Он позволяет отображать данные некоторого поля, но не дает возможности его редактировать. Тип отображаемого поля может быть различным: строка, число, булева величина, дата. Компонент автоматически переводит соответствующие типы в отображаемые символы. Он располагается на странице DataControls. Для того, чтобы связать данные с соответствующим полем таблицы, нужно в свойстве DataSource выбрать соответствующий компонент, например DataSourceOsndan, а свойство DataField установить в соответствующее поле таблицы.
DBEdit – связанный с данными аналог обычного окна редактирования Edit. Он позволяет отображать и редактировать данные полей различных типов: строка, число, булева величина. Впрочем, если задать в компоненте ReadOnly=true, то он, как и DBText, будет служить элементом отображения, но несколько более изящным, чем DBText.
DBMemo- связанный с данными аналог обычного многострочного окна редактирования Memo. Он позволяет отображать и редактировать данные поля типа Memo, а также данные любых типов, указанных выше для предыдущих компонентов, например в этом компоненте можно отображать и редактировать текст приказа на слушателя, характеристику сотрудника и т.п.
DBRichEdit –связанный с данными аналог обычного многострочного окна редактирования текста в обогащенном формате RTF. Область применения та же, что и для компонента DBMemo.
DBImage – связанный с данными аналог обычного компонента Image. Компонент позволяет отображать графические поля, например, фотографии слушателей.
DBChecBox – связанный с данными аналог обычного индикатора ChecBox. Он позволяет редактировать и отображать данные поля булева типа. Если при выводе данных поле имеет значение true, то индикатор включается. И наоборот, при редактировании поля присваемое ему значение определяется состоянием индикатора.
DBRadioGroup – связанный с данными аналог группы радиокнопок RadioGroup. Компонент позволяет отображать и редактировать поля с ограниченным множеством возможных значений
Все перечисленные компоненты имеют два основных свойства: DataSource – источник данных (компонент типа TDataSource) и свойство DataField – поле, с которым связан компонент.
Характерной особенностью всех этих компонентов, отличающих их от несвязанных с данными аналогичных компонентов, является отсутствие в окне Инспектора Объектов их основных свойств, отображающих содержание: Caption в DBText, Text в DBEdit, Picture в DBImage и т.п. Все эти свойства имеются в компонентах, но они доступны только во время выполнения.
DBLookupListBox- используется для отображения поля в виде списка. Здесь для связи с компонентой DataSource используется свойство ListSourse (ри.15), а не свойство DataSource, которое используется для связанных таблиц. Свойство ListField связывается с полем, которое будет отображаться в списке. Свойство KeyField позволит выбрать соответствующее каждой записи ключевое поле.
DBLookupComboBox- используется для отображения поля в виде выпадающего списка. Это особенно актуально при нехватке места (рис.16). Например, для того чтобы из выпадающего списка можно было выбрать специальности из таблицы Spec необходимо:
На форме разместить компоненту QuerySpec, в свойстве SQL которой прописать: Select * from spec order by name_spec
Н
а форме разместить компоненту DataSourceSpec, свойство DataSet которой выбрать QuerySpec.
У компоненты DBLookupComboBoxSpec (рис.15) свойство ListSource выбрать DataSourceSpec, свойство KeyField (ключевое поле) выбрать Kod_spec, свойство Listfield (поле для отображения в выпадающем списке) выбрать Name_spec.
Тогда фрагмент кода кнопки «Подтвердить» рис.16:
DataModule1.Queryd.Close;
DataModule1.Queryd.SQL.Clear;
D
ataModule1.Queryd.SQL.add('insert
into obuch (tn, ndata, kdata, kod_fob, kod_spec, kurs) values
(:tn,:ndata,:kdata,:kod_fob,:kod_spec,:kurs)');
DataModule1.Queryd.ParamByName('tn').Asinteger:=DataModule1.Queryosndan.fieldbyname('tn').AsInteger;
DataModule1.Queryd.ParamByName('kod_fob').AsInteger:=DBLookupComboBoxfob.KeyValue;
DataModule1.Queryd.ParamByName('kod_spec').AsInteger:=DBLookupComboBoxspec.KeyValue;
DataModule1.Queryd.ParamByName('kurs').AsSmallInt:= SpinEdit1.Value;
DataModule1.Queryd.ParamByName('kdata').AsDate:=DateTimePickerobuch3.Date;
DataModule1.Queryd.ParamByName('ndata').AsDate:=DateTimePickerobuch2.Date;
DataModule1.Queryd.ExecSQL;
D
BCtrlGrid
– компонент напоминает таблицу записей
(DBGrid),
но позволяет представлять данные не в
жестко заданном табличном виде, а с
помощью выбранного набора компонентов
с панели Data
Controls
(в число размещаемых компонентов не
могут входить такие компоненты, как
DBGrid,
DBNavigator,
DBlistBox,
DBRadioGroup,
DBLookuplist,
DBRichEdit,
то есть все, представляющие несколько
значений поля) и в произвольном виде.
Например, можно задать число столбцов
в свободной форме.
DBChart – предназначен для построения диаграмм.