Лабораторные работы по базам данных в Delphi

Автор работы: Пользователь скрыл имя, 13 Декабря 2010 в 21:19, лабораторная работа

Описание работы

Цель работы:

1.Ознакомить с утилитой Database Desktop.
2.Усвоить процесс создания и редактирования таблиц с помощью Database Desktop.
Database Desktop - это утилита, которая поставляется вместе с Delphi для интерактивной работы с таблицами различных форматов локальных баз данных - Paradox и dBase, а также SQL-серверных баз данных InterBase, Oracle, Informix, Sybase (с использованием SQL Links). Исполняемый файл утилиты называется DBD32.EXE. Для запуска Database Desktop просто дважды щелкните по ее иконке.

Файлы: 1 файл

Лабораторные работы по базам данных.doc

— 1.41 Мб (Скачать файл)

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

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

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

    • Data Source – содержит ссылку на компонент типа TDataSource, служащий источником данных;
    • Editor Mode – если содержит true, пользователь может редактировать ячейку после нажатия клавиши F2 или Enter. Игнорируется, если свойство Option включает значение goEditing или goAlwaysShowEditor;
    • Option – определяет вид и поведение компонента;
    • dgEditing – разрешает изменение набора данных;
    • dgAlwaysShowEditor – автоматически переводит столбец в режим редактирования при его выделение;
    • dgTitles – показывает заголовки столбцов;
    • dgIndicator – показывает индикатор текущей строки в самом левом фиксированном столбце;
    • dgColumnResize – разрешает пользователю вручную изменять ширину столбцов;
    • dgColLines – показывает разделяющие вертикальные линии;
    • dgRowLines – показывает разделяющие горизонтальные линии;
    • dgTabs – разрешает переход от столбца к столбцу с помощью клавиши Tab;
    • dgRowSelect – разрешает выделение цветом всей выбранной строки;
    • dgAlwaysShowSelection – выделение текущей строки сохраняется, если компонент теряет фокус ввода;
    • dgConfirmDelete – удаление строки должно подтверждаться;
    • dgCancelOnExit – если пользователь вставил пустую строку и покинул ее, она не помещается в набор данных;
    • dgMultiSelect – разрешает множественный выбор строк.

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

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

    1. Запустить Delphi.
    2. В свойстве Caption изменить имя формы на Студенты.
    3. Установить на форму компоненту TTable.
    4. Определить следующие свойства компоненты Table1.
  • определить псевдоним - выбрать в свойстве DatabaseName инспектора объектов псевдоним «Student»
  • задать имя таблицы - выбрать в свойстве TableName таблицу Student.
  • активизировать таблицу - установить в свойстве Active значение true (это будет возможно после выполнения пункта 4).
    1. Разместить на форму компоненту DataSource с закладки Data Access и в свойстве DataSet инспектора объектов выбрать компоненту Table1.
    2. Расположить на форме компоненту 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. Откроем созданное приложение.
  1. Разместим на форме три компоненты SpeedButton из палитры Additional. Одна из кнопок будет добавлять запись, другая – изменять данные в записи, третья – удалять. Назовем их соответственно.

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

 

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

    procedure TForm1.SpeedButton1Click(Sender: TObject);

    begin

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

      end;   

  1. Текст процедуры для события 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 – закрывает форму «Добавление записи».

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

   procedure TForm1.SpeedButton3Click(Sender: TObject);

   begin

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

     end;

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

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

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

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

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

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

        

  1. В случае перетаскивания поля логического типа, на форме автоматически устанавливается компонента DBCheckBox, что не всегда удобно.
    1. Установим на форму компоненту DBRadioGroup с закладки Data Control.
    2. В свойстве DataSource укажем DataSource1.
    3. В свойстве DataField укажем SSpec.
  2. Текст процедуры для события OnClick при нажатии клавиши «Изменить» на форму Студенты:

     begin

         Form3.ShowModal //вызов Form3

     end;

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

     begin

         if form1.Table1.Modified

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

         close;

     end;

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

Информация о работе Лабораторные работы по базам данных в Delphi