Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


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

Тип Реферат
Предмет Информатика
Просмотров
967
Размер файла
1 б
Поделиться

Ознакомительный фрагмент работы:

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

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

Лабораторная работа № 1

Цель работы:

  1. Ознакомить с утилитой DatabaseDesktop.
  2. Усвоить процесс создания и редактирования таблиц с помощью DatabaseDesktop.

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

Запуск DatabaseDesktop:

    Запустить Delphi

1.1 В меню Delphi выбрать раздел Tools

2.2 В появившемся списке выбрать строку DatabaseDesktop

    Щелкнуть по кнопке Пуск

1.1 Из главного меню выбрать строку Программы

2.2 В появившемся списке выбрать строку Delphi 7

3.3 В следующем списке выбрать строку DatabaseDesktop

После запуска DatabaseDesktop на экране появится окно:

Создание таблиц в DatabaseDesktop:

  1. Запускаем программу Database Desktop;
  2. В появившемся окне выбираем: FileNewTable.

Формат таблицы выбираем Paradox. После этого появится окно создания таблицы, в котором можно определить поля таблицы и их тип:

По умолчанию сразу после открытия окна в правой его части в списке Tableproperties выбран пункт ValidityChekcs, что позволяет контролировать содержимое полей. С помощью флажка RequiredFields можно потребовать обязательного заполнения поля при вводе новой записи. Также можно контролировать минимальное и максимальное значение числового поля в строках MinimumValue и MaximumValue. В строке DefaultValue можно указать значение поля по умолчанию – при вводе новой записи значение в это поле поместит BDE.С помощью строки Picture можно задать шаблон для автоматического форматирования значения поля. Например, если задан шаблон (###)###-#### и в поле введена строка 9054005647, она будет автоматически преобразована к виду (905)400-5647.

Кнопки предназначены для:

Borrow– осуществляет копирование структуры таблицы из другой таблицы

Saveas – сохраняет изменения в структуре таблицы

Cancel – выход без сохранения

Help – вызов справки

    Чтобы определить структуру таблицы в этом окне необходимо заполнить следующие графы:

· Field Name - Имяполя.

· Type - Тип поля. Вызывает список допустимых типов, щелчком правой кнопки мыши или клавишей пробел.

· Size - Размер. Определяет размер поля. Не все типы полей имеют размер. Большинство типов имеют стандартный размер, который не может быть изменен. Размер в основном меняется у строковых типов (Alpha), бинарных (Binary) и др.

· Key - Ключ. Двойной щелчок мышью определяет ключевое поле. Ключевыми могут быть только первые поля, то есть второе поле сможет быть ключевым только вместе с первым.

Типы полей формата Paradox

Alphaстрока длиной 1-255 байт, содержащая любые печатаемые символы
Numberчисловое поле длиной 8 байт, значение которого может быть положительным и отрицательным. Диапазон чисел - от 10-308 до 10308 с 15 значащими цифрами
$ (Money)числовое поле, значение которого может быть положительным и отрицательным. По умолчанию, является форматированным для отображения десятичной точки и денежного знака
Shortчисловое поле длиной 2 байта, которое может содержать только целые числа в диапазоне от -32768 до 32767
Long Integerчисловое поле длиной 4 байта, которое может содержать целые числа в диапазоне от -2147483648 до 2147483648
# (BCD)числовое поле, содержащее данные в формате BCD (Binary Coded Decimal). Скорость вычислений немного меньше, чем в других числовых форматах, однако точность - гораздо выше. Может иметь 0-32 цифр после десятичной точки
Dateполе даты длиной 4 байта, которое может содержать дату от 1 января 9999 г. до нашей эры - до 31 декабря 9999 г. нашей эры. Корректно обрабатывает високосные года и имеет встроенный механизм проверки правильности даты
Timeполе времени длиной 4 байта, содержит время в миллисекундах от полуночи и ограничено 24 часами
@ (Timestamp)обобщенное поле даты длиной 8 байт - содержит и дату и время
Memoполе для хранения символов, суммарная длина которых более 255 байт. Может иметь любую длину. При этом размер, указываемый при создании таблицы, означает количество символов, сохраняемых в таблице (1-240) - остальные символы сохраняются в отдельном файле с расширением .MB
Formatted Memoполе, аналогичное Memo, с добавлением возможности задавать шрифт текста. Также может иметь любую длину. При этом размер, указываемый при создании таблицы, означает количество символов, сохраняемых в таблице (0-240) - остальные символы сохраняются в отдельном файле с расширением .MB. Однако, Delphi в стандартной поставке не обладает возможностью работать с полями типа Formatted Memo
Graphicполе, содержащее графическую информацию. Может иметь любую длину. Смысл размера - такой же, как и в Formatted Memo. Database Desktop “умеет” создавать поля типа Graphic, однако наполнять их можно только в приложении
OLEполе, содержащее OLE-данные (Object Linking and Embedding) - образы, звук, видео, документы - которые для своей обработки вызывают создавшее их приложение. Может иметь любую длину. Смысл размера - такой же, как и в Formatted Memo. Database Desktop “умеет” создавать поля типа OLE, однако наполнять их можно только в приложении. Delphi “напрямую” не умеет работать с OLE-полями, но это легко обходится путем использования потоков
Logicalполе длиной 1 байт, которое может содержать только два значения - T (true, истина) или F (false, ложь). Допускаются строчные и прописные буквы
+ (Autoincrement)поле длиной 4 байта, содержащее нередактируемое (read-only) значение типа long integer. Значение этого поля автоматически увеличивается (начиная с 1) с шагом 1 - это очень удобно для создания уникального идентификатора записи (физический номер записи не может служить ее идентификатором, поскольку в Парадоксе таковой отсутствует. В InterBase также отсутствуют физические номера записей, но отсутствует и поле Autoincrement. Его с успехом заменяет встроенная функция Gen_id, которую удобней всего применять в триггерах)
Binaryполе, содержащее любую двоичную информацию. Может иметь любую длину. При этом размер, указываемый при создании таблицы, означает количество символов, сохраняемых в таблице (0-240) - остальные символы сохраняются в отдельном файле с расширением .MB. Это полнейший аналог поля BLOb в InterBase
Bytesстрока цифр длиной 1-255 байт, содержащая любые данные

Создадим таблицу с данными о студентах. Укажем такие данные, как: ФИО, дата рождения, на основании какого приказа студент принят в университет, номер зачетки, специальность, курс, стипендия. Во всех текстовых полях, необходимо указать размер.

Созданную таблицу сохраняем под названием Student.db и закрываем окно создания таблиц.

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

Редактирование таблицы:

1. Определение вторичных индексов.

1.1. Открыть таблицу Student.db (FileOpenTable)

1.2. Из меню Tableвыбрать пункт Restructure. Откроется окно редактирования полей таблицы.

1.3. В выпадающем списке Table propertiesвыбрать Secondary Indexesи нажать кнопку Define. В окне DefineSecondary Index определяются вторичные индексы:

С помощью флажков группы Indexoptions можно определить следующие особенности индекса:

· Unique – индекс будет содержать уникальные значения;

· Maintained – индексные поля сортируются по возрастанию значений;

· Casesensitive – индекс чувствителен к регистру букв в текстовых полях;

· Descending – индексные поля сортируются по убыванию значения.

1.4. Выбрать «SFio» из списка Fields и нажать кнопку с изображенной стрелкой вправо. В списке Indexed fields(индексированные поля) появится «SFio». То же самое проделать с полями «SSpec» и «SKurs».

1.5. Закрытьокно“Define Secondary Index”

1.6. В появившемся окне ввести имя индекса IDFio и нажать "OK".

2. Теперь, так как на факультете всего две специальности, то можно переопределить тип поля «SSpec». Для работы будет гораздо удобнее, чтоб это поле было типа Logical.

2.1. Навести курсор на тип поля «SSpec» и написать тип поля «L».

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

3.1. Открыть окно редактирования полей таблицы Student.db.

3.2. В выпадающем списке Table propertiesвыбрать TableLanguage и нажать кнопку Modify.

3.3. В появившемся окне выбрать из списка PdoxANSICyrillic.

3.4. Сохранить таблицу.

4. Для логического типа значение по умолчанию зададим False.

Заполнение данными в таблице Student.db:

· Открыть таблицу (FileOpenTable)

· Выбрать TableEditdata или нажать клавишу F9.

· Создать несколько записей.

Создание псевдонима:

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

Регистрация псевдонима:

1. Воспользуемся приложением SQLExplorer, запускаемым командой DatabaseExplore. В левой части окна приводится список всех зарегистрированных в системе BDE баз данных, в правой – свойства текущей базы, выбранной в списке.

2. Создадим псевдоним для базы данных. Для этого выполним команду ObjectNew и в диалоговом окне выбора драйвера укажем значение Standart.

3. После щелчка на кнопке ОК в списке появится новый элемент, помеченный зеленым треугольником.

4. По умолчанию формируется имя базы данных Standard1, изменим его на Student.

5. Убедимся, что в свойствах DefaultDriver(Драйвер по умолчанию) стоит значение Paradox. В свойстве Path укажем каталог, в котором хранится наши таблица.

6. Теперь зарегистрированную в системе BDE базу сохраним, выбрав для этого Apply в контекстном меню объекта Student.

7. На вопрос о необходимости сохранения изменений нажать Yes. Теперь таблица доступны из среды BDE под именем Student.

8. Закройте SqlExplorer.

Лабораторная работа № 2

Цель работы:

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, который используется в настоящее время.

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

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

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

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

· EditorMode – если содержит 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 с закладки DataAccessи в свойстве DataSet инспектора объектов выбрать компоненту Table1.

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

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

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

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

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

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

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

  • 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 по нажатии кнопки будет перенесен в таблицу на форме «Студенты» в новую запись в текстовое поле ФИО. Остальные записи в процедуре работают аналогичным образом. Запись ifform1.Table1.Modifiedthenform1.Table1.Postсохраняет изменения в таблице. Closeзакрывает форму «Добавление записи».

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

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

procedure TForm1.SpeedButton3Click(Sender: TObject);

begin

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

end;

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

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

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

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

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

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

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

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

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. Пользователь имеет возможность редактировать записи в таблице напрямую. Чтобы это предотвратить используется свойство компоненты DBGriddgEditing. Нужно выделить DBGrid1 и в свойстве OptionsdgEditing инспектора объектов поставить false.

Лабораторная работа № 3

Цели работы:

  1. Ознакомиться с сортировкой записей в базе данных.
  2. Поиск полей с помощью методов Locate и Lookup;

Сортировка:

Порядок расположения записей в таблице БД может быть неопределенным. По умолчанию записи не отсортированы или сортируются, например, для таблиц Paradox по ключевым полям, а для таблиц dBase в порядке их поступления в файл таблицы.

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

Сортировка набора данных TTable выполняется автоматически по текущему индексу. При смене индекса происходит переупорядочивание записей. Таким образом, возможна по полям, для которых создан индекс. Для сортировки по нескольким полям нужно создать индекс, включающий эти поля.

Задать индекс, по которому выполняется сортировка записей, можно с помощью свойств:

· IndexName – указывается имя индекса, установленное при его создании;

· IndexFieldName – указываются имена полей, образующий соответствующий индекс.

  1. Откроем приложение.
  2. Добавим на форму компоненты ComboBox и Button.

  1. В свойстве Items компоненты ComboBox запишем параметры сортировки: Фамилия, Специальность, Курс, Дата рождения, Номер зачетки.
    1. Условия сортировки задаются вторичными индексами. То есть сортировка по фамилии происходит по вторичному ключу IDFio так как в него первым входит поле SFio. Для того, чтобы сортировка проходила по выбранным параметрам необходимо вхождение соответствующих полей в разные вторичные ключи.
  2. Текст процедуры для события OnClick при нажатии кнопки «Сортировка» на форме Студенты:

begin

Case ComboBox1.ItemIndex of

0: Table1.IndexFieldNames:='SFio'; //привыборестроки «Фамилия»

//сортировка идет по вторичному индексу IDFio

1: Table1.IndexFieldNames:='SSpec';

2: Table1.IndexFieldNames:='SKurs';

3: Table1.IndexFieldNames:='SData';

4: Table1.IndexFieldNames:='SNom';

end;

end;

Замечание: во вторичный индекс IDFioвходят поля: SFio, SKurs, SSpec. То есть при совпадении фамилии сортировка идет уже по курсу и т.д.

Пример:

Поиск:

Метод Locate ищет первую запись, удовлетворяющую критерию поиска, и если такая запись найдена, делает ее текущей. В этом случае в качестве результата возвращается значение True. Если запись не найдена, возвращается значение False и курсор не меняет своего положения.

function Locate (const KeyFields: String; const KeyValues: Variant;

Options: TLocateOptions): Boolean;

Список полей, по которым ведется поиск, задается в параметре KeyFields, поля разделяются точкой с запятой. ПараметрKeyValues типа Variant указывает значение полей для поиска. Если поиск ведется по одному полю, то параметр содержит одно значение, соответствующие типу поля, заданного для поиска.

Параметр Options позволяет задать значение, которое обычно используется при поиске строк. Этот параметр принадлежит к множественному типу TLocateOptions и принимает комбинации следующих значений:

· LoCaseInsensitive –регистр букв не учитывается;

· LoPartialKey – допускается частичное совпадение.

    На форму добавить компоненту Edit.

    Текст процедуры для события OnChange компоненты Edit на форме Студенты:

begin

table1.Locate('SFio',Edit1.Text,[loPartialKey]);

end;

    Поиск записи по фамилии организован. Регистр букв не учитывается.

Метод Lookup находит запись, удовлетворяющую условию поиска, но не делает ее текущей, а возвращает значения некоторых ее полей. Независимо от результата поиска записи указатель текущей записи в НД не изменяется. В отличие от метода Locate, метод Lookup осуществляет поиск только на точное соответствие критерию поиска значения поля поиска записи.

function Lookup (const KeyFields: String;const KeyValues: Variant;

constResultFields: String): Variant;

В параметре ResultFields перечисляются поля, значения которых требуется получить в случае успешного поиска. Тип результата – Variantили вариантный массив.

1. Добавить на главную форму новую кнопку «Поиск».

2. Открыть новую форму и ввести компоненты как показано на рисунке. Эта форма вызывается нажатием кнопки поиска на главной форме.

3. Поиск будет происходить по фамилии введенной в компоненте Edit1 после нажатия кнопки на форме «Поиск методом Lookup».

procedure TForm5.Button1Click(Sender: TObject);

var LookupResult: Variant;

begin

LookupResult:=Form1.Table1.Lookup('SFio', Edit1.Text, 'SData; SOsn; SNom; SSpec; SKurs'); //ищемполя 'Датарождения'

//’Основание’, ’Номерзачетки’, ’Специальность’, ’Курс

if VarIsArray (LookupResult) then

begin

Edit2.Text:=LookupResult[0]; //записываетзначения

Edit3.Text:=LookupResult[1]; // вискомыхполяхв

Edit4.Text:=LookupResult[2]; //соответствующие

Edit5.Text:=LookupResult[3]; //компоненты

if Edit5.Text='False' then

Edit5.Text:='Физика' //поискполейлогическоготипа

else Edit5.Text:='Математика';

Edit6.Text:=LookupResult[4];

end;

end;

Лабораторная работа № 4

Цели:

    Ознакомиться с фильтрацией записей.

Фильтрацию можно отнести к одному из методов поиска. Потому что фильтрация – выбор из набора данных только тех записей, которые удовлетворяют конкретным условиям. Например, можно указать отображение только записей, в которых поле «Фамилия» содержит значение «Иванов». Применение фильтра к набору данных определяется свойством Filtered логического типа. Значение True определяет применение в качестве фильтра выражения, указанного в свойстве Filter:

Поле [Оператор сравнения] ‘Значение’

Например, если отобразить все записи, в которых поле «Фамилия» равно значению «Сидоров», то нужно указать:

Table1.Filter:=’Фамилия=’’Сидоров’’’;

Фильтрация записей:

1. Открыть приложение.

2. Добавить на форму компоненту TEdit.

3. Текст процедуры для события OnChange:

begin

Table1.Filtered:=true; //включениефильтрации

Table1.Filter:='SNom = ‘+Edit2.Text;

//задаеткритерийфильтрации

end;

4. Этот способ фильтрации пригоден только для числовых полей.

5. При применении фильтра можно указать свойства:

a. foCaseInsensitive – нечувствительность к регистру букв;

b. foNoPartialCompare – поиск на точное соответствие.

6. Для фильтрации текстовых полей, например по полю «Фамилия» необходимо изменить текст процедуры.

procedure TForm1.Edit2Change(Sender: TObject);

begin

Table1.Filtered:=true;

Table1.Filter:='SFio='+#39+Edit2.Text+'*'+#39;

end;

7. В этом случае фильтрация проходит по текстовому полю. Знак «#39» означает знак апострофа, так как ввод фамилии при использовании фильтра происходит в апострофах. А символ «*» означает любые символы, то есть при вводе только одной буквы на экране появятся все фамилии начинающиеся на букву.

Лабораторная работа № 5

Цели:

1. Усвоить возможность связи таблицам.

Установка связи между таблицами:

Для демонстрации связи между таблицами необходимо создать еще одну таблицу. Создайте таблицу успеваемости студентов. В нее войдут поля: учебный год, сессия (зима или лето), предмет, ФИО преподавателя, дата аттестации по предмету, дата сдачи, оценка.

1. Эта таблица будет дочерней для таблицы Студенты. В таблице Успеваемость надо ввести дополнительно числовое поле и определить его вторичным ключом.

2. Разместите таблицу успеваемости на форме Студенты.

3. В свойстве компоненты Table2 MasterSourceнаписать DataSource1. Это означает, что вторая таблица станет дочерней для первой.

4. Двойным щелчком по свойству MasterFields вызовем окно FieldLinkDesigner (Дизайнер поля связи):

4. ВыбратьвспискеAvailable Index (Доступныеиндексы)изокнаField Link DesignerиндексIDGod(этовторичныйиндексвторойтаблицы).

5. В левом списке DetailFieldвыделить IdU, а в правом списке MasterField(Основа) выделить Ind.

6. Нажать на кнопку Add (Добавить) и закрыть окно.

7. Таким образом между таблицами установилась связь. Она называется связь один ко многим.

8. К дочерней таблице добавить кнопки для ввода и редактирования данных также как и для таблицы Студенты.

Лабораторная работа № 6

Цели работы:

    Ознакомиться с возможностью создания отчета.

Создание отчетов:

Отчет — это печатный документ, содержащий записи БД. В Delphi для создания отчетов служит генератор отчетов QuickReport, содержащий обширный набор компонентов. Компоненты, предназначенные для создания отчетов, находятся на закладке QReportпалитры компонентов.

Главным элементом отчета является компонент-отчет QuickRep, представляющий собой основу, на которой размещаются другие компоненты. Компонент QuickRep обычно размещается на отдельной форме, предназначенной для создания отчета.

Свойства компоненты QuickRep:

· Bands– здесь указываются компоненты размещаемые в QuickRep.

· DataSet– здесь указывается набор данных из которой отчет будет брать данные.

· Frame– здесь указывается параметры рамки.

· Options– здесь доступны три параметра. Если FirstPageHeaderравно true, то заголовок печатается только на первой странице отчета. Если LastPageFooterравен true, то нижний колонтитул печатается только на последней странице отчета. Если установить свойство Compressionв true, то отчет будет сохраняться в сжатом виде.

· ReportTitle– здесь находится заголовок печатаемого документа.

· SnapToGrid– нужно ли выравнивать компоненты по установленной сетке.

· Zoom– масштаб отображения данных.

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

  1. Открыть приложение «Студенты».
  2. Добавить на главную форму кнопку «Созданиеотчета».
  3. Создать новую форму «Отчет», которая будет вызываться нажатием на кнопку «Создание отчета».
  4. На форму установить компоненту QuickRep с закладки QReport. Выделить этот компонент и в объектном инспекторе включить параметры HasTitleи HasDetailсвойства Bands.

  1. Расположим компоненты в секциях QuickRep1, которые будут отображать нужную информацию отчета. На закладке QReportпалитры компонентов доступны следующие компоненты, которые можно расположить в этих разделах:
  • QRLabel– надпись. Этот компонент похож на стандартный компонент TLabelи просто отображает нужные данные.
  • QRDBText– данные. Этот компонент тоже похож на TLabel, только он предназначен для отображения значения какого либо поля из базы данных.
  • QRSysData– системная информация. Это опять копия TLabelтолько с возможностью отображать системную информацию – дату, время, номер страницы, номер строки в таблицы, общее количество страниц и т.д.
  • QRImage– картинка. Компонент схожий с TImage.
  • Увеличить область заголовка Title. В верхний угол поместите один компонент QRSysData. Выделить его и в свойстве Data выбрать значение qrsDateTime. Теперь этот компонент будет отображать в правом, верхнем углу дату распечатки документа.
  • В центре области Tittle установить компонент QRLabel, увеличь шрифт в свойстве Fontи написать в свойстве Captionтекст «Студенты».
  • Расположить в области Tittle компоненты QRLabelи дать им заголовки: ФИО, Дата рождения, Номер зачетки, Специальность, Курс.
  • Перейти к области Detail. Под заголовками поставить пять компонентов QRDBText. Установить в свойстве DataSet компонентов QRDBText набор данных - Form1.Table1, а в свойстве DataField для QRDBText1указать SFio. У всех остальных компонентов QRDBText указать соответствующие имена полей.
    1. Перейти в главный модуль и по нажатию кнопки “Печать” написать следующий код.

    procedure TForm1.SpeedButton5Click(Sender: TObject);

    begin

    Form4.QuickRep1.Preview; //вызываетсяметодPreview

    //компонента QuickRep. Этот метод показывает окно

    //предварительного просмотра созданного документа.

    еnd;

      Запустить программу, выделить какую-нибудь строку и нажать кнопку печати. Откроется окно предварительного просмотра.

    1. Выделить компонент QuickRep1и в свойстве DataSetуказать таблицу Form1.Table1.
    2. Если сделать это, то компонент QuickRep1автоматически будет перебирать все записи из этой таблицы и использовать их в компонентах, которые стоят в блоке DetailBand1.
    3. После этого в отчете появятся все записи таблицы:

    1. Установить на форму отчета компонент – QRSubDetailс закладки QReport. Этот компонент предназначен для перебора данных относящихся к подчиненным таблицам.
    2. Установить следующие свойства: DataSetForm1.Table2, чтобы связать блок с таблицей Uspevaemost.db, которая является подчиненной к основной Studenti.db.
    3. В свойстве Master нужно указать главный компонент с основными данными. Выбрать в этом свойстве QuickRep1.
    4. Расположить на компоненте QRSubDetail компоненты QRDBTextв свойстве указав, к каким полям подчиненной таблицы они обращаются.
    5. Получится следующий вид отчета:


    Нет нужной работы в каталоге?

    Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

    Цены ниже, чем в агентствах и у конкурентов

    Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

    Бесплатные доработки и консультации

    Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

    Гарантируем возврат

    Если работа вас не устроит – мы вернем 100% суммы заказа

    Техподдержка 7 дней в неделю

    Наши менеджеры всегда на связи и оперативно решат любую проблему

    Строгий отбор экспертов

    К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

    1 000 +
    Новых работ ежедневно
    computer

    Требуются доработки?
    Они включены в стоимость работы

    Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

    avatar
    Математика
    История
    Экономика
    icon
    159599
    рейтинг
    icon
    3275
    работ сдано
    icon
    1404
    отзывов
    avatar
    Математика
    Физика
    История
    icon
    156450
    рейтинг
    icon
    6068
    работ сдано
    icon
    2737
    отзывов
    avatar
    Химия
    Экономика
    Биология
    icon
    105734
    рейтинг
    icon
    2110
    работ сдано
    icon
    1318
    отзывов
    avatar
    Высшая математика
    Информатика
    Геодезия
    icon
    62710
    рейтинг
    icon
    1046
    работ сдано
    icon
    598
    отзывов
    Отзывы студентов о нашей работе
    63 457 оценок star star star star star
    среднее 4.9 из 5
    Тгу им. Г. Р. Державина
    Реферат сделан досрочно, преподавателю понравилось, я тоже в восторге. Спасибо Татьяне за ...
    star star star star star
    РЭУ им.Плеханово
    Альберт хороший исполнитель, сделал реферат очень быстро, вечером заказала, утром уже все ...
    star star star star star
    ФЭК
    Маринаааа, спасибо вам огромное! Вы профессионал своего дела! Рекомендую всем ✌🏽😎
    star star star star star

    Последние размещённые задания

    Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

    Подогнать готовую курсовую под СТО

    Курсовая, не знаю

    Срок сдачи к 7 дек.

    только что
    только что

    Выполнить задания

    Другое, Товароведение

    Срок сдачи к 6 дек.

    1 минуту назад

    Архитектура и организация конфигурации памяти вычислительной системы

    Лабораторная, Архитектура средств вычислительной техники

    Срок сдачи к 12 дек.

    1 минуту назад

    Организации профилактики травматизма в спортивных секциях в общеобразовательной школе

    Курсовая, профилактики травматизма, медицина

    Срок сдачи к 5 дек.

    2 минуты назад

    краткая характеристика сбербанка анализ тарифов РКО

    Отчет по практике, дистанционное банковское обслуживание

    Срок сдачи к 5 дек.

    2 минуты назад

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

    Лабораторная, Моделирование, математика

    Срок сдачи к 10 дек.

    4 минуты назад

    Проектирование заготовок, получаемых литьем в песчано-глинистые формы

    Лабораторная, основы технологии машиностроения

    Срок сдачи к 14 дек.

    4 минуты назад

    2504

    Презентация, ММУ одна

    Срок сдачи к 7 дек.

    6 минут назад

    выполнить 3 задачи

    Контрольная, Сопротивление материалов

    Срок сдачи к 11 дек.

    6 минут назад

    Вам необходимо выбрать модель медиастратегии

    Другое, Медиапланирование, реклама, маркетинг

    Срок сдачи к 7 дек.

    7 минут назад

    Ответить на задания

    Решение задач, Цифровизация процессов управления, информатика, программирование

    Срок сдачи к 20 дек.

    7 минут назад
    8 минут назад

    Все на фото

    Курсовая, Землеустройство

    Срок сдачи к 12 дек.

    9 минут назад

    Разработка веб-информационной системы для автоматизации складских операций компании Hoff

    Диплом, Логистические системы, логистика, информатика, программирование, теория автоматического управления

    Срок сдачи к 1 мар.

    10 минут назад
    11 минут назад

    перевод текста, выполнение упражнений

    Перевод с ин. языка, Немецкий язык

    Срок сдачи к 7 дек.

    11 минут назад
    planes planes
    Закажи индивидуальную работу за 1 минуту!

    Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

    «Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

    Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
    и политику обработки персональных данных
    Сайт работает по московскому времени:

    Вход
    Регистрация или
    Не нашли, что искали?

    Заполните форму и узнайте цену на индивидуальную работу!

    Файлы (при наличии)

      это быстро и бесплатно