close

Вход

Забыли?

вход по аккаунту

?

Otschet 1.3

код для вставкиСкачать
Министерство образования Республики Беларусь
Учреждение образования
"Брестский государственный технический университет"
Кафедра ЭВМиС
Лабораторная работа №3
по базам данных, знаний и экспертных систем
"Поиск и отбор данных"
Выполнил:
студент 3 курса,
факультета ЭИС,
группы Э-47
Балиевич А.С.
Проверила:
Грисевич Л.Н.
Брест 2013г.
Цель работы: получить навыки по организации поиска и отбора данных в создаваемой БД.
Задание:
Создать форму для просмотра данных таблицы. Дополнить форму элементами управления (создать интерфейс) для реализации следующих действий: 1) Организовать поиск записи по ключевому значению с помощью метода Locate компонента TTable. //---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TLocateOptions SearchOptions;
SearchOptions.Clear();
SearchOptions << loCaseInsensitive << loPartialKey;
Table1->Locate(RadioGroup1->Items->operator [](RadioGroup1->ItemIndex),Edit1->Text,SearchOptions);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormActivate(TObject *Sender)
{
RadioGroup1->ItemIndex=0;
}
//---------------------------------------------------------------------------
2) Задать любое условие отбора данных в таблице (например: найти книги указанного автора). Установить фильтр двумя способами: - свойство Filter компонента TTable (при Filtered = True)
- событие OnFilterRecord
Организовать интерфейс для ввода условия фильтрации с клавиатуры. Предоставить пользователю возможность перемещаться между записями, удовлетворяющими фильтру, при отключенной фильтрации. (Методы FindFirst, FindLast, FindNext, FindPrior).
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
AnsiString str="[Номер камеры]=";
str.Insert(Edit2->Text,str.Length()+1);
Table1->Filtered=true;
Table1->Filter=str;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button8Click(TObject *Sender)
{
Table1->Filter="";
Table1->Filtered=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Table2FilterRecord(TDataSet *DataSet, bool &Accept)
{
Accept=(DataSet->FieldValues["Номер заключенного"]>=StrToIntDef(Edit4->Text,0)) && (DataSet->FieldValues["Номер заключенного"]<=StrToIntDef(Edit5->Text,200000000));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Table2->FindFirst();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
Table2->FindNext();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
Table2->FindPrior();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
Table2->FindLast();
}
//---------------------------------------------------------------------------
3) Создать еще два индексных файла (индексация по ключу существует по умолчанию) с помощью Dekstop - Restructure - Secondary Index I - по любому полю, кроме ключевого. II - по двум полям; (при этом внести записи в таблицу таким образом, чтобы в первом поле были повторяющиеся значения). Добавить на форму кнопки, обработчиком события OnClick которых является установка текущего индекса. //---------------------------------------------------------------------------
void __fastcall TForm1::Button9Click(TObject *Sender)
{
Table1->IndexName="date";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button10Click(TObject *Sender)
{
Table1->IndexName="num";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button11Click(TObject *Sender)
{
Table1->IndexName="";
}
//---------------------------------------------------------------------------
4) Осуществить поиск записей по условию п.2 в проиндексированном файле с помощью метода FindKey, неточный поиск с помощью метода FindNearest. Дополнить форму полем ввода данных для поиска. Организовать инкрементальный локатор с помощью метода FindNearest для поиска записи. //---------------------------------------------------------------------------
void __fastcall TForm1::Button12Click(TObject *Sender)
{
Table1->FindKey(&TVarRec(Edit6->Text),0) ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button13Click(TObject *Sender)
{
Table1->FindNearest(&TVarRec(Edit6->Text),0) ; }
//---------------------------------------------------------------------------
5) Отфильтровать записи в проиндексированном файле используя методы SetRange, CancelRange. //---------------------------------------------------------------------------
void __fastcall TForm1::Button14Click(TObject *Sender)
{
AnsiString strr1, strr2;
strr1=Edit7->Text;
strr2=Edit8->Text;
if(strr1=="\0")
strr1="0";
if(strr2=="\0")
strr2="2147483647";
Table1->SetRange(&TVarRec(strr1),0,&TVarRec(strr2),0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button15Click(TObject *Sender)
{
Table1->CancelRange();
}
//---------------------------------------------------------------------------
Вывод: получил навыки по организации поиска и отбора данных в создаваемой БД.
1
Документ
Категория
Рефераты
Просмотров
10
Размер файла
77 Кб
Теги
otschet
1/--страниц
Пожаловаться на содержимое документа