Главная » Просмотр файлов » Задание8_Работа_с_БД

Задание8_Работа_с_БД (1076759), страница 5

Файл №1076759 Задание8_Работа_с_БД (Лабораторная работа №8) 5 страницаЗадание8_Работа_с_БД (1076759) страница 52018-01-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

unit peter_;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

ExtCtrls, StdCtrls, DBCtrls, Mask, Db, DBTables,

jpeg; // чтобы можно было выводить jpg иллюстрации

type

TForm1 = class(TForm)

Table1: TTable; // база данных - таблица

DataSource1: TDataSource; // источник данных для полей редактирования-просмотра

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

DBMemo1: TDBMemo;

Image1: TImage;

DBEdit3: TDBEdit;

DBNavigator1: TDBNavigator;

Label4: TLabel;

procedure Table1AfterScroll(DataSet: TDataSet);

procedure DBEdit3KeyPress(Sender: TObject; var Key: Char);

procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);

procedure Table1BeforeOpen(DataSet: TDataSet);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

BmpPath: string; // Путь к файлам иллюстраций. Иллюстрации

// находятся в подкаталоге Data каталога программы.

implementation

{$R *.DFM}

// выводит фотографию в поле Image1

procedure ShowFoto(foto: string);

begin

try

Form1.Image1.Picture.LoadFromFile(BmpPath+foto);

Form1.Image1.Visible:=True;

except

on EFOpenError do

begin

MessageDlg('Файл иллюстрации '+foto+' не найден.', mtInformation, [mbOk], 0);

end;

end;

end;

// переход к другой записи (следующей, предыдущей, первой или последней)

procedure TForm1.Table1AfterScroll(DataSet: TDataSet);

begin

if form1.DBEdit3.Visible

then

begin

form1.DBEdit3.Visible := False;

form1.Label4.Visible:=False;

end;

if Form1.DBEdit3.Text <> ''

then ShowFoto(Form1.DBEdit3.Text)

else form1.Image1.Visible:=False;

end;

// нажатие клавиши Enter в поле Фото

procedure TForm1.DBEdit3KeyPress(Sender: TObject; var Key: Char);

begin

if (key = #13) then

if Form1.DBEdit3.Text <> ''

then ShowFoto(Form1.DBEdit3.Text) // показать иллюстрацию

else form1.Image1.Visible:=False;

end;

// щелчок на компоненте Навигатор

procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);

begin

case Button of

nbInsert: begin

Image1.Visible:=False; // скрыть область вывода иллюстрации

DBEdit3.Visible:=True; // показать поле Фото

Label4.Visible:=True; // показать метку Фото

end;

nbEdit: begin // редактирование записи

DBEdit3.Visible:=True; // показать поле Фото

Label4.Visible:=True; // показать метку Фото

end;

end;

end;

//перед открытием таблицы

procedure TForm1.Table1BeforeOpen(DataSet: TDataSet);

begin

BmpPath:=ExtractFilePath(ParamStr(0))+'data\';

end;

end.

Вызов процедуры вывода фотографии (ShowFoto) во время просмотра базы данных выполняет процедура TForml.Table1AfterScroll, которая обеспечи­вает обработку события AfterScroll для компонента Table1. Событие AfterScroll происходит всякий раз после перехода к другой (следующей, предыдущей, первой, последней) записи таблицы как результат щелчка пользователя на соответствующей кнопке компонента DBNavigator. Процедура TForm1.TabielAfterScroll анализирует содержимое поля (photo) Form1.DBEdit3.Text и, если оно не пустое, что свидетельствует о наличии ссылки на файл фотографии, выводит иллюстрацию.

При просмотре базы данных поле имени файла иллюстрации (DBEdit3) и его заголовок (Label4) на форме не отображаются. Если пользователь на­жимает одну из кнопок компонента DBNavigator, то как результат обработ­ки события OnClick вызывается процедура TForml.DBNavigatorlClick, которая при щелчке кнопки Добавить или Редактировать делает доступным поле DBEdit3, тем самым позволяя пользователю ввести или изменить имя файла иллюстрации.

Процедура TForm1.DBEdit3KeyPress обрабатывает событие OnKeyPress для компонента DBEdit3. Если пользователь ввел в поле Edit3 (photo) имя фай­ла иллюстрации и нажал клавишу <Enter> (ее код равен 13), то процедура TFormi.DBEdit3KeyPress выводит иллюстрацию путем вызова процедуры ShowFoto.

4.2.2. Режим таблицы

Программа работы с базой данных "Архитектурные памятники Санкт-Петербурга" выводит информацию в режиме формы, в каждый момент вре­мени пользователь может видеть только одну запись. Такой режим работы с базой данных не всегда удобен. Если необходимо видеть одновременно не­сколько записей базы данных, то нужно обеспечить просмотр данных в ре­жиме таблицы.

Процесс создания приложения, обеспечивающего просмотр базы данных в режиме таблицы, рассмотрим на примере программы работы с базой дан­ных "Школа".

Пусть база данных "Школа" (псевдоним Школа), представляет собой табли­цу, которая находится в файле School.db. Записи таблицы school состоят из полей: Name (Имя), Fam (Фамилия), class (Класс), Adr (Адрес) и n (Личный номер). Поля Name, Fam, Class и Adr являются полями символьного типа (тип А), а поле n — числовое, с автоувеличением.

Примечание

Псевдоним Школа следует создать при помощи BDE Administrator, а таблицу (файл school.db) — при помощи Database Desktop.

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

Таблица 17.14. Значения свойств компонентовTable1 и DataSource1

Свойство Значение

T able1.DatabaseName Школа

Table1.TableName schoo1.db

Table1.Active True

DataSource1.Dataset Table1


Д ля обеспечения просмотра и редактирования данных в режиме таблицы в форму приложения надо добавить компонент DBGrid, значок которого нахо­дится на вкладке Data Controls (рис. 20). Вид формы разрабатываемого приложения после добавления компонента DBGrid приведен на рис. 21.

Рис. 20. Значок компонента DBGrid на вкладке Data Controls

Рис. 21. Форма приложения после добавления компонента DBGrid

Компонент DBGrid обеспечивает представление базы данных в виде табли­цы. Свойства компонента DBGridi определяют вид таблицы и действия, которые могут быть выполнены над данными во время работы программы. В табл.15 перечислены некоторые свойства компонента DBGrid.

Таблица 15. Свойства компонента DBGrid
Свойство Определяет

N ame Имя компонента

DataSource Источник отображаемых в таблице данных

Columns Отображаемую в таблице информацию

Options . dgTitles Разрешает вывод строки заголовка столбцов

Options .dglndicator Разрешает вывод колонки индикатора. Во время

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

индикатора треугольником, новая за­пись — звездочкой,

редактируемая — специальным значком

Options.dgColumnResize Разрешает менять во время работы программы ши­рину колонок таблицы

Options.dgColLines Разрешает выводить линии, разделяющие колонки таблицы

Options .dgRowLines Разрешает выводить линии, разделяющие строки таблицы


Рис. 22. Редактор колонок


Д ля того чтобы задать, какая информация будет отображена в таблице во время работы программы, нужно сначала определить источник данных для таблицы (установить значения свойства DataSource), затем — установить значения уточняющих параметров свойства columns. Значение свойства DataSource задается обычным образом, то есть в окне Object Inspector. Что­бы установить значение свойства Columns, надо в окне Object Inspector вы­брать это свойство и щелкнуть на кнопке с тремя точками. В результате от­крывается окно редактора колонок (рис. 22).

Для того чтобы в компонент DBGrid добавить колонку, обеспечивающую просмотр содержимого поля записи файла данных, необходимо нажать кнопку Add New, находящуюся на панели инструментов в верхней части ок­на (это единственная доступная после запуска

редактора кнопка), выделить добавленный элемент и, используя Object Inspector, установить значения свойств этой колонки (табл.16). Свойство Columns компонента DBGrid представляет собой массив компонентов типа TColumn. Каждой колонке со­ответствует элемент массива. Устанавливая значения свойств компонентов Column, программист задает вид колонок компонента DBGrid, тем самым определяет вид всей таблицы.

Таблица 16. Свойства компонента column

Свойство Определяет

F ieldName Поле записи, содержимое которого выводится в колонке

width Ширину колонки в пикселах

Font Шрифт, используемый для вывода текста в ячейках колонки

Color Цвет фона колонки

Alignment Способ выравнивания текста в ячейках колонки. Текст может

быть выровнен по левому краю (taLeftJustify), по центру (taCenter)

или по правому краю (taRightJustify)

Title.Caption Заголовок колонки. Значением по умолчанию является имя поля записи

Title.Alignment Способ выравнивания заголовка колонки. Заголовок может быть выровнен

по левому краю (taLeftJustify), по центру (taCenter) или по правому краю (taRightJustify)

Title. Color Цвет фона заголовка колонки
Title. Font Шрифт заголовка колонки

В простейшем случае для каждой колонки достаточно установить значение свойства FieldName, которое определяет имя поля записи, содержимое ко­торого будет отображаться в колонке, а также значение свойства Title.Caption, определяющего заголовок колонки. В табл.17 приведены значения свойств Columns компонента DBGridi.

Таблица 17. Значения свойств компонента DBGridi
Компонент FieldName Title.Caption

D BGridi.Columns[0] Fam Фамилия

DBGridi.Columns[1] Name Имя

DBGridl.Columns[2] Class Класс

DBGridl.Columns[3] Adr Адрес, телефон

П оследнее, что надо сделать — добавить к форме компонент DBNavigator, настроив его на работу с таблицей-источником данных (свойству Datasource нужно присвоить значение Table1).

Характеристики

Тип файла
Документ
Размер
934 Kb
Тип материала
Высшее учебное заведение

Список файлов лабораторной работы

Лабораторная работа №8
8
8_Питер
Data
peterburg.cfg
peterburg.dof
peterburg.dpr
peterburg.exe
peterburg.res
peterburg_.dcu
peterburg_.ddp
peterburg_.dfm
peterburg_.pas
peterburg_.~ddp
peterburg_.~dfm
peterburg_.~pas
8_школа
data
school.cfg
Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7041
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее