Связывание таблиц и организация поиска

Страницы работы

Содержание работы

Горбачев И.А. гр. ЭМ-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);       

}

//---------------------------------------------------------------------------

Вывод: в работе изучен механизм связывания таблиц и поиска в базе данных.

Похожие материалы

Информация о работе