Горбачев И.А. гр. ЭМ-41
Лабораторная работа №14
СВЯЗЫВАНИЕ ТАБЛИЦ И ОРГАНИЗАЦИЯ ПОИСКА
Цель работы. Изучить методы связывания таблиц и организации поиска информации.
Индивидуальное задание:
Настроить компоненты DBGrid для отображения информации из таблиц лабораторной работы №13:
- заголовки столбцов русскими буквами, различные шрифты для заголовков и данных.
Написать программу, реализующую связь таблиц вашей БД (лабораторная работа №13) по принципу “один-ко-многим”, и организовать поиск по трем любым полям разного типа из разных таблиц.
По одному полю организовать инкрементный поиск.
Для поиска использовать методы FindKey и Lookup.
Сделать возможным запрос имени поля, значение которого возвращается в результате поиска.
Предусмотреть обработку исключений при вводе некорректных значений и ошибках доступа к базе данных.
Рисунок 1 –Внешний вид программы
Исходный текст программы:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TLocateOptions SearchOptions;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Table1->Active = true;
Table2->Active = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
Table1->Active = false;
Table2->Active = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
try
{
Table1->IndexFieldNames = "Nom";
Table1->FindKey(OPENARRAY(TVarRec,(Edit2->Text)));
Edit4->Text = Table2->Lookup("Nom",Edit2->Text,"Kol Zakaz");
}
catch(...)
{
ShowMessage("Ошибка!");
Edit2->Text = "";
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Edit3->Text = Table2->Lookup("NAme",Edit3->Text,"Telefon");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
TLocateOptions SearchOptions;
SearchOptions<<loPartialKey;
Table1->Locate("Processor",Edit1->Text,SearchOptions);
}
//---------------------------------------------------------------------------
Вывод: в работе изучен механизм связывания таблиц и поиска в базе данных.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.