Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МВ ПР СПЗ БКС 2014.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
266.24 Кб
Скачать

Ход работы

Упражнение 8

  1. Н

    - 26 -

    ачните новый проект и разместите на новой форме таблицу и источник данных, а также диа­логовое окно открытия файла (компонент OpenDialog на странице Dialogs), причём возьми­те таблицу в качестве свойства источника данных DataSet (т. е. для свойства DataSet компонента DataSource1 выберите значение Table1).

  2. Установите свойство таблицы Readonly равным True, а свойство AutoEdit ис­точника данных DataSource1 - равным False.

  3. Разместите на форме фаску (компонент Bevel на странице Additional), установите её свойство Shape равным bsFrame, а свойство Align — равным alTop.

  4. Установите свойства диалогового окна открытия файла следующим образом:

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

DefaultExt DB

Options.ofHideReadOnly True

Options.ofFileMustExist True

Title Open Database File

  1. Дважды щёлкните на свойстве Filter и создайте два фильтра с назва­ниями Database File и All Files с соответствующими масками *.DB; *.DBF и *.*.

  2. Разместите на фаске слева одну кнопку Button1 панели инструментов, установив её свойство Caption равным 1, а свойство Font — равным Wingdings. Мы получили кнопку с изображенной на ней открытой папкой.

  3. Справа от полученной кнопки разместите навигатор DBNavigator.

  4. Свяжите свойство навигатора DataSource с источником данных (для его свойства DataSource выберите значение DataSource1). Установите всё, кроме первых четырёх подсвойств VisibleButtons, рав­ным False.

  5. Установите свойство ShowHint навигатора равным True.

  6. Теперь разместите на форме сетку данных DBGrid, установите её свойство Align равным alClient и также свяжите её с источником данных (для её свойства DataSource выберите значение DataSource1).

  7. З

    - 27 -

    амените название формы на Универсальный просмоторщик баз данных.

  8. Дважды щёлкните на кнопке панели инструментов и внесите следующий программный код в её обработчик события OnClick:

with OpenDialog1 do

if Execute then

with Table1 do

begin

Close;

DatabaseName := ExtractFilePath(Filename);

TableName := ExtractFileName(Filename);

Open;

end;

вы по­строили средство просмотра для всех своих таблиц баз данных. Но если вы хотите не­сколько больше, чем просто просматривать содержимое таблиц, всё, что от вас требует­ся, — это изменить несколько свойств. В результате вы получите редактор таблицы.

  1. В проекте просмотра баз данных установите свойство таблицы ReadOnly рав­ным False, а свойство источника данных AutoEdit — равным True.

  2. Дважды щёлк­ните на свойстве навигатора VisibleButtons и установите его подсвойства nbInsert, nbDelete, nbPost и nbCancel равными True. Благодаря этим простым изменениям, средство просмотра баз данных станет редактором. Навигатор позволяет перемещаться по записям вперёд и назад или переходить на первую или послед­нюю запись. Можно также перемещаться, используя полосы прокрутки сетки.

  3. Со­храните этот проект как DBVIEWER.

  4. З

    - 28 -

    апустите программу и попытайтесь внести незначительные изменения в при­меры баз данных, которые поставляются вместе с Delphi. Изменения будут сохра­нены, как только вы покинете текущую строку. Вы также можете щёлкнуть на кнопке Post (с изображением галочки), чтобы выполнить немедленное сохранение результата, или на кнопке Cancel (с крестиком) — для отмены сделанных измене­ний перед тем, как покинуть строку.

  5. Используя прокрутку, перейдите в нижнюю часть сетки и с помощью клавиши <> вставьте новую строку или щёлкните на кнопке Insert (со знаком "+"), чтобы вставить новую строку в любое место таблицы. Если вы покинете эту строку, ни­чего в ней не изменив, то она исчезнет. А в таблице с первичным ключом, при сохра­нении новой строки или при переходе на другую, она займёт свое место в порядке сортировки по первичному ключу.

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

КОНТРОЛЬНЫЕ ВОПРОСЫ:

  1. Для чего нужен компонент DBNavigator?

  2. Что включает в себя свойство навигатора VisibleButtons?

  3. Что нужно изменить в компоненте DBNavigator, что бы программа перед удалением строки запросила подтверждение.

  4. Для чего нужно свойство ShowHint?

  5. Какие функции будет выполнять Навигатор, который не связан с источником данных?

CОДЕРЖАНИЕ ОТЧЕТА

В

- 29 -

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

ПРАКТИЧЕСКАЯ РАБОТА №6

ТЕМА: Использование графики в базах данных

ЦЕЛЬ: Изучить необходимые компоненты для работы с графикой в базах данных.

КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

сетка данных не является универсальным средством для различных форм работы с базами данных. самым существенным недостатком сетки данных является неспособность отображения данных типа BLOB (Binary Large Objects — крупные объекты в бинарном формате). Например, в таблице BIOLIFE.DB поля Notes и Graphic содержат примечания переменной длины и изображения, а сетки данных общего назначения не в со­стоянии их отобразить.

Для работы с одной определенной базой данных, структура таблиц которой известна заранее, Delphi поддерживает большую группу ориентированных на определённые данные компонентов. Существуют варианты таких компонентов для надписи, поля ввода, примечания, растрового изображения, списка, комбинированного спи­ска, флажка параметра и группы переключателей. Подобно сетке данных, все они обладают свойством DataSource, которое указывает на источник данных внутри проекта. Они также имеют свойство DataField для определения того, какие поля будут отображены. Кроме этих простых специализированных ком­понентов, Delphi предлагает интеллектуальные компоненты списка данных и комбинированного списка данных, которые в состоянии получить доступ к данным из другой таблицы.

Далее для надежности мы будем работать не с оригиналом, а с копией таблицы.

- 30 -