русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Вывод БД на экран


Дата добавления: 2014-02-04; просмотров: 1298; Нарушение авторских прав


Компонент Table

Редактирование локальных БД

Программная обработка локальных бд

 

 

Итак, БД создана и сохранена на диске в виде файла с расширением db. Поставим задачу вывести эту БД на экран в нашей программе, написанной на Delphi. Рассмотрим простейший способ.

Запустите Delphi и создайте новое приложение (меню FileàNewàApplication). Сначала в приложении будет только одна пустая форма. Традиционно компоненты, отвечающие за работу с базами данных, помещают не на форму, а в специальный модуль данных. Создадим его (меню FileàNewàData Module). Модуль данных внешне похож на форму, но он никогда не отображается на экране в процессе работы программы. Сразу сохраните созданный модуль на диске (Ctrl+S) под любым именем, например, dm_unit.pas.

В инспекторе объектов поменяйте в свойстве Name значение названия модуля данных по умолчанию (DataModule1) на более короткое, скажем, DM. Это имя придется часто писать в тексте программы. Обратите внимание, что это имя не должно совпадать с именем файла, в котором вы сохранили модуль данных.

На модуль данных надо поместить компонент Table (закладка BDE). Он открывает и позволяет редактировать один конкретный файл (таблицу) БД. Дайте компоненту более короткое название (поле Name в инспекторе объектов): DVD вместо Table1.

Введем основные свойства компонента TTable

Active– False. В начальный момент работы программы таблица должна быть закрыта.

DatabaseName– путь к той директории, в которой находится файл базы данных (например, C:\DB).

TableName– имя файла БД (его можно выбратьиз раскрывающегося списка).

TableType– тип базы данных. В данном случае ttParadox.

 

 

 

Для отображения баз данных на экране предусмотрен компонент DBGrid, расположенный на вкладке Data Controls. Для связи между базой данных и DBGrid требуется еще один компонент – DataSource (закладка Data Access). Таким образом, получается следующий набор компонентов, необходимый для вывода БД на экран (Рис. 25.1).



 

Рис. 29.1 Компоненты для отображения таблицы.

 

Поместите компонент DataSource в модуль данных и переименуйте его. Чтобы не запутаться, рекомендуется называть его DVDDS. Единственное свойство этого компонента, которое надо установить – это DataSet. Из списка выберите название таблицы DVD.

Компонент DBGrid, разумеется, размещается на форме, а не в модуле данных. Переключитесь (Shift+F12) на форму и поместите на нее DBGrid. Теперь надо связать DBGrid и DataSource. Делается это так. Сначала вручную добавьте имя файла модуля данных (dm_unit.pas) в раздел USES формы:

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, dm_unit;

 

Затем выполните компиляцию проекта без запуска программы (Ctrl+F9). Теперь в инспекторе объектов у компонента DBGrid установите свойство DataSource в значение DM.DVDDS.

Теперь запускайте программу… Готово! На экране – наша БД. Ее можно редактировать, добавлять (клавиша Insert) или удалять (клавиша Delete) записи.

Увы, пока таблица с БД на экране выглядит довольно безобразно. Во-первых, в заголовках колонок выводятся названия полей, а хотелось бы видеть русский текст вроде "Название фильма". Во-вторых, ширина колонок получилась неудобной, к тому же при разворачивании формы на весь экран эта ширина не меняется. Давайте приведем DBGrid в относительный порядок.

Чтобы создать колонки с собственными заголовками, нужно позволить Delphi проанализировать структуру вашей БД и занести в программу ссылки на ее поля. Выполните следующие действия:

1. Переключитесь в модуль данных.

2. Щелкните правой кнопкой мыши на компоненте Table1 и в контекстном меню выберите пункт Fields Editor. Откроется пустое окошко редактора полей.

3. Снова щелкните правой кнопкой мыши в окне редактора полей и выберите пункт Add fields. Через секунду Delphi отобразит список полей нашей БД. Осталось щелкнуть по кнопке OK.

 

Итак, поля добавлены. Снова переключаемся на форму, щелкаем правой кнопкой мыши по DBGrid и выбираем в контекстном меню пункт Columns Editor. Откроется окно редактора колонок. Для добавления новой колонки щелкните по кнопке . В свойствах колонки задайте имя поля (FieldName), которое будет в ней отображаться. В инспекторе объектов раскройте пункт Title, в поле Caption введите желаемое русское название колонки. Здесь же можно выровнять заголовки по центру (свойство Alignment, значение taCenter), поменять цвет и шрифт заголовков. Аналогичным образом добавьте колонки для всех полей базы. Разумеется, поле ID добавлять не надо, оно является служебным. Поля пусть идут в следующем порядке: NAME_RUSSIAN; NAME_ENGLISH; NUMBER; SUBTITLES;YEARF.

Теперь надо настроить режимы отображения DBGrid. Закройте окно редактора колонок и раскройте пункт Options в редакторе свойств компонента DBGrid. Установите пункт dgIndicator в False – это необходимо для правильного задания ширины колонок.

Ширину колонок мы будем пересчитывать динамически при изменении размеров формы. Соответственно, для формы надо создать обработчик события OnResize:

 

procedure TForm1.FormResize(Sender: TObject);

 

CONST w:ARRAY[0..4] OF REAL=(0.35,0.35,0.1,0.1,0.1);

VAR i:BYTE;

 

begin

FOR i:=0 TO LENGTH(w)-1 DO

DBGrid1.Columns[i].Width:=TRUNC((DBGrid1.Width- GetSystemMetrics(SM_CXVSCROLL)-LENGTH(w))*w[i])-1

end;

 

В константном массиве w хранятся относительные ширины колонок NAME_RUSSIAN, NAME_ENGLISH, NUMBER, SUBTITLES и YEARF соответственно. Сумма всех элементов этого массива должна быть равна единице. В цикле присваивается ширина в пикселах колонкам компонента с именем DBGrid1. Функция GetSystemMetrics(SM_CXVSCROLL)возвращает ширину вертикальной полосы прокрутки в пикселах. Она вычитается из ширины компонента DBGrid1.Width, чтобы получить ширину поля, на котором размещаются колонки. Кроме того, для учета ширины вертикальных линий, разделяющих колонки, из ширины поля надо вычесть число колонок (по пикселу на колонку). Наконец, полученную ширину умножаем на соответствующий элемент массива, берем целую часть от получившегося произведения и на всякий случай вычитаем единицу – из-за ошибок округления можно получить лишний пиксел, из-за которого на экране возникнет совершенно не нужная горизонтальная полоса прокрутки.

Если все сделано правильно, DBGrid будет иметь вполне приличный вид.

Для повышения удобства просмотра и редактирования БД в паре с DBGrid можно применить компонент DBNavigator, представляющий собой панель с кнопками перехода по записям, добавления, редактирования и удаления записей. Поместите DBNavigator на форму и установите его свойство DataSource в значение DM.DVDDS.

 



<== предыдущая лекция | следующая лекция ==>
Создание баз данных | Работа с распределенными БД


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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