Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лабораторная работа № 2. 1. Изучить начальные этапы создания приложения для работы с базами данных в среде Delphi:




Цель работы:

1. Изучить начальные этапы создания приложения для работы с базами данных в среде Delphi:

· ознакомить с компонентами доступа к БД: TTable, TDataSource;

· ознакомить с компонентами управления БД: TDBGrid, TDBNavigator.

2. Усвоить ввод и редактирование текста.

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

Приложение работы с базой данных должно содержать компоненты, обеспечивающие доступ к данным, возможность просмотра и редактирования содержимого полей. Компоненты доступа к данным находятся на вкладке Data Access и BDE палитры компонентов, а компоненты отображения данных — на вкладке Data Controls.

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

Компоненты доступа к базам данных:

TTable - обеспечивает взаимодействие с таблицей БД, т.е. компонент TTable указывает, откуда брать данные и какие поля будут составлять набор данных. Компонент TTable имеет следующие основные свойства:

· DatabaseName – база данных

· TableName - имя таблицы

· Active – активация таблицы (значение True активирует ее)

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

* псевдоним (псевдоним)

* путь для локальных БД

* путь и имя файла базы данных для Local InterBase

* локальный псевдоним, определенный через компонент TDatabase.

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

TDataSource - определяет связь между базой данных и компонентами управления данными, то есть компонент TDataSource является промежуточным звеном между компонентом Table1, соединенным с реальной БД и визуальными компонентами DBGrid1 и DBNavigator1, с помощью которых пользователь взаимодействует с таблицей.

В большинстве случаев, все, что нужно сделать с DataSource - это указать в свойстве DataSet соответствующий TTable. Затем, у визуального компонента вроде DBGrid или DBNavigator в свойстве DataSource указывается TDataSource, который используется в настоящее время.

Компоненты управления данными с палитры Data Contorls:

TDBGrid - отображает содержимое таблицы БД в виде сетки, в котором столбцы соответствуют полям, а строки записям таблицы.

Компонент имеет следующие свойства:

· Data Source – содержит ссылку на компонент типа TDataSource, служащий источником данных;

· Editor Mode – если содержит true, пользователь может редактировать ячейку после нажатия клавиши F2 или Enter. Игнорируется, если свойство Option включает значение goEditing или goAlwaysShowEditor;

· Option – определяет вид и поведение компонента;

o dgEditing – разрешает изменение набора данных;

o dgAlwaysShowEditor – автоматически переводит столбец в режим редактирования при его выделение;

o dgTitles – показывает заголовки столбцов;

o dgIndicator – показывает индикатор текущей строки в самом левом фиксированном столбце;

o dgColumnResize – разрешает пользователю вручную изменять ширину столбцов;

o dgColLines – показывает разделяющие вертикальные линии;

o dgRowLines – показывает разделяющие горизонтальные линии;

o dgTabs – разрешает переход от столбца к столбцу с помощью клавиши Tab;

o dgRowSelect – разрешает выделение цветом всей выбранной строки;

o dgAlwaysShowSelection – выделение текущей строки сохраняется, если компонент теряет фокус ввода;

o dgConfirmDelete – удаление строки должно подтверждаться;

o dgCancelOnExit – если пользователь вставил пустую строку и покинул ее, она не помещается в набор данных;

o dgMultiSelect – разрешает множественный выбор строк.

TDBNavigator - осуществляет перемещение и редактирование записей (вид и назначение кнопок указаны в пункте DBNavigator). С помощью свойства DataSource компонент связывается с нужным источником данных ТDataSource – это все, что необходимо для его нормальной работы. Свойство ConfirmDelete управляет отображением диалогового окна с просьбой подтвердить удаление записи (значение True этого свойства выводит окно).

Создание приложения:

1. Запустить Delphi.

2. В свойстве Caption изменить имя формы на Студенты.

3. Установить на форму компоненту TTable.

4. Определить следующие свойства компоненты Table1.

· определить псевдоним - выбрать в свойстве DatabaseName инспектора объектов псевдоним «Student ».

· задать имя таблицы - выбрать в свойстве TableName таблицу Student.

· активизировать таблицу - установить в свойстве Active значение true (это будет возможно после выполнения пункта 4).

5. Разместить на форму компоненту DataSource с закладки Data Access и в свойстве DataSet инспектора объектов выбрать компоненту Table1.

6. Расположить на форме компоненту DBGrid с закладки Data Controls и в свойстве DataSource выбрать DataSource1.

Если вы внесли несколько записей, то форма Студенты примет вид:

Редактор полей:

Для управления отображением данных таблицы используют специальный редактор полей - Editor Field.

Для вызова Editor Field следует:

  • Дважды щелкнуть по Table1.
  • Для открывшегося окна вызвать контекстное меню и выбрать пункт Add All Field, если необходимо добавить все поля таблицы.
  • Add Field для выбора отдельного поля.

Редактор полей имеет следующие свойства:

  • DisplayLabel задает имя полю;
  • DisplayWidth – определяет количество символов, которое будет выводится в поле;

Определим свойства для полей таблицы Student.db.

1. Выбрать в окне редактора полей таблицы поле SFio и в свойстве DisplayLabel инспектора объектов изменить SFio на ФИО. Выбрать свойство DisplayWidth и заменить размер на 35.

2. Так же поменять свойства других полей таблицы.

3. Для полей логического типа в свойстве DisplayValues можно написать варианты для значений True и False. В поле SSpec в этом свойстве написать «Математика;Физика» (без пробела, разделяя «;»). Получиться как показано на рисунке.

4. Если возникнет необходимость можно скрыть любое поле, выбрав его и в свойстве Visible инспектора объектов установив значение false.

После выполненных действий сетка DBGrid1 будет выглядеть так:

Ввод данных:

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

Основные методы для организации доступа компоненты Table:

  • Append – добавить новую запись в конец таблицы.
  • Delete – удалить текущую строку.
  • Edit – перейти в режим редактирования. После этого можно изменять значения полей.
  • Insert – вставить новую строку в таблицу.
  • Post – принять все изменения.
  • Refresh – обновить информацию о данных.
  • UpdateRecord – обновить текущую запись.

1. Откроем созданное приложение.

2. Разместим на форме три компоненты SpeedButton из палитры Additional. Одна из кнопок будет добавлять запись, другая – изменять данные в записи, третья – удалять. Назовем их соответственно.

3. Создадим новую форму, которая будет вызываться нажатием кнопки «Добавить». На форме расположены 4 компоненты Edit, компонент DateTimePicker с закладки Win32, компонент CheckBox и компонент RadioGroup.

4. Текст процедуры для события OnClick кнопки «Добавить» на форме Студенты:

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

Form2.ShowModal; //открывает форму «Добавление записи»

end;

5. Текст процедуры для события OnClick кнопки «ОК» на форме Добавление записи:

procedure TForm2.Button1Click(Sender: TObject);

begin

Form1.Table1.Insert;

Form1.Table1.FieldByName('SFio').Text:=Edit1.Text;

Form1.Table1.FieldByName('SOsn').Text:=Edit2.Text;

Form1.Table1.FieldByName('SNom').Text:=Edit3.Text;

Form1.Table1.FieldByName('SKurs').Text:=Edit4.Text;

Form1.Table1.FieldByName('SData').AsDateTime:=DateTimePicker1.Date;

if CheckBox1.Checked then

Form1.Table1.FieldByName('SStip').Text:='да'

else

Form1.Table1.FieldByName('SStip').Text:='нет';

//при нажатии на флажок полю SStip (Стипендия) передается

//значение True, в противном случае вводится передается

//значение False

case RadioGroup1.ItemIndex of

0: Form1.Table1.FieldByName('SSpec').Text:='Математика';

1: Form1.Table1.FieldByName('SSpec').Text:='Физика';

end;

if form1.Table1.Modified

then form1.Table1.Post;

close;

Комметарий: в строке Form1.Table1.Insert вызывается метод, который допускает вставку новой строки в таблицу, которая находится на форме «Студенты». Без вызова этого метода дальнейшая работа по вставке записи в таблицу невозможна. Запись Form1.Table1.FieldByName('SFio').Text:=Edit1.Text означает, что текст, который находится в Edit1 по нажатии кнопки будет перенесен в таблицу на форме «Студенты» в новую запись в текстовое поле ФИО. Остальные записи в процедуре работают аналогичным образом. Запись if form1.Table1.Modified then form1.Table1.Post сохраняет изменения в таблице. Close – закрывает форму «Добавление записи».

6. По нажатии кнопки Cancel осуществляется выход. То же и на форме «Редактирование записи».

7. Текст процедуры для события OnClick при нажатии клавиши «Удалить» на форме Студенты:

procedure TForm1.SpeedButton3Click(Sender: TObject);

begin

Table1.Delete //удаляет текущую запись в таблице

end;

Редактирование данных:

Компоненты, отражающие информацию, делятся на две категории – те, которые не связаны с таблицами БД, и компоненты, связанные с таблицами и обменивающиеся с ними информацией. В первую категорию входят обычные компоненты Delphi. Компоненты второй категории расположены на странице Data Controls. Почти каждая из них имеет аналог среди обычных компонент; основные отличия заключаются в том, что они могут работать с данными, хранящимися в БД. К этой группе относится компонента DBEdit, которая используется для ввода текстовой однострочной информации.

Чтобы компонент DBEdit видел данные из поля таблицы, следует указать в свойствах:

  • DataSource – источник данных;
  • DataField – поле для редактирования.

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

1. Создадим новую форму: Редактирование записи.

2. В случае перетаскивания поля логического типа, на форме автоматически устанавливается компонента DBCheckBox, что не всегда удобно.

2.1. Установим на форму компоненту DBRadioGroup с закладки Data Control.

2.2. В свойстве DataSource укажем DataSource1.

2.3. В свойстве DataField укажем SSpec.

3. Текст процедуры для события OnClick при нажатии клавиши «Изменить» на форму Студенты:

begin

Form3.ShowModal //вызов Form3

end;

4. Текст процедуры для события OnClick при нажатии клавиши «Сохранить» на форму Редактирование:

begin

if form1.Table1.Modified

then form1.Table1.Post; //все изменения в таблице сохраняются

close;

end;

5. Пользователь имеет возможность редактировать записи в таблице напрямую. Чтобы это предотвратить используется свойство компоненты DBGrid dgEditing. Нужно выделить DBGrid1 и в свойстве Options► dgEditing инспектора объектов поставить false.




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 560; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.059 сек.