2.6 Разработка системы поиска информации в БД

В курсовой работе представлено 2 варианта поиска: простой и расширенный. Простой поиск выводит в DBGrid одну запись, поле ФИО которой равно введенному в строке поиска тексту или же начинается с тех же символов.

Примечательность простого поиска в том, что он ищет все записи, соответствующие запросу, но выводит сначала лишь первую, а по кнопке «Искать далее» переходит на следующую запись. По окончании простого поиска в окне появляются 3 новые кнопки: удалить, отобразить все и добавить информацию. Первая удаляет запись, отображающуюся на данный момент, посредством следующего кода:

DataSource2.DataSet:=Table1;

Vid_DBGrid;

Table1.First;

//Находим в БД студенты удаляемую запись

for i:=1 to Table1.RecordCount do begin

if Table1['ФИО']=Query1['ФИО'] then begin

Query1.Close;

s:=Table1['Группа'];

Table1.Delete;

break;

end;

Table1.Next;

end;

//Для всех записей за ней из той же группы уменьшаем порядковый номер на 1

b:=true;

While b=true do

if Table1['Группа']=s then begin

Table1.Edit;

Table1['Номер']:=Table1['Номер']-1;

Table1.Post;

Table1.Next;

end else

b:=false;

Вторая кнопка отображает в DBGrid вновь все записи, при этом осуществляя Refresh всех записей. Третья кнопка вызывает окно добавления информации (см. рис.1), предназначенное для добавления информации к тем студентам, которые получают более одного поощрения или ездили более, чем в одну поездку. Примечательность работы этого окна заключается том, что в поле Сумма будет выводиться общая сумма, полученная студентом с момента выдачи первого поощрения.


рис.1 Окно добавления информации

2.7 Разработка функции перехода в следующий семестр

Один раз в семестр одно из полей нашей БД (Группа) должно меняться, раз в год меняется еще одно поле (Курс), а те записи, значение поля Группа которых заканчивается буквой “Д” (ЭВМ-1Д), должны удаляться из БД, но сохраняться в еще каком-нибудь месте.

Реализовано это в пункте меню Доплонительно àПерейти в след. Семестр. Выпускники при выполнении этой операции удаляются из БД и записываются в файл с расширением *.csv.

procedure TForm1.N14Click(Sender: TObject);

var

i,j,k:integer;

s,st,str:string;

f:textfile;

begin

if MessageDlg('Вы уверены, что хотите перевести всех студентов в следующий семестр?',mtConfirmation,[mbOK, mbCancel],0)=mrOK then begin

assignfile(f,'Выпускники'+DateToStr(Now)+'.csv');

rewrite(f);

for i:=1 to Table1.RecordCount do begin

s:=Table1['Группа'];

j:=0;

str:='';

repeat

j:=j+1;

str:=str+s[j];

until s[j]='-';

st:='';

for k:=j+1 to length(s) do

st:=st+s[k];

if st[length(st)]='Д' then begin

st:=inttostr(Table1['Номер'])+';'+Table1['ФИО']+';'+Table1['Факультет']+';';

st:=st+inttostr(Table1['Курс'])+';'+Table1['Группа']+';';

if Table1['Поощрения']=null then

st:=st+';'

else

st:=st+Table1['Поощрения']+';';

if Table1['Дата выдачи']=null then

st:=st+';'

else

st:=st+Table1['Дата выдачи']+';';

if Table1['Сумма']=null then

st:=st+';'

else

st:=st+Table1['Сумма']+';';

if Table1['Примечание']=null then

st:=st+';'

else

st:=st+Table1['Примечание']+';';

if Table1['Поездки']=null then

st:=st+';'

else

st:=st+Table1['Поездки']+';';

if Table1['Примечания']=null then

st:=st+';'

else

st:=st+Table1['Примечания']+';';

writeln(f,st);

Table1.Delete;

end else begin

j:=strtoint(st) div 10;

if j<11 then begin

with Query2 do begin

Close;

SQL.Clear;

SQL.Add('SELECT *');

SQL.Add('FROM '+Table1['Факультет']+'.db');

SQL.Add('WHERE Группа LIKE "'+Table1['Группа']+'"');

Open;

end;

Table1.Edit;

Table1['Группа']:=str+inttostr(j+1)+s[length(s)];

if (j mod 2)=0 then

Table1['Курс']:=Table1['Курс']+1;

Table1.Post;

if Query2['Группа']<>'' then begin

Query2.Edit;

Query2['Группа']:=Table1['Группа'];

Query2.Post;

end;

Table1.Next;

end else

if j=11 then begin

with Query2 do begin

Close;

SQL.Clear;

SQL.Add('SELECT *');

SQL.Add('FROM '+Table1['Факультет']+'.db');

SQL.Add('WHERE Группа LIKE "'+Table1['Группа']+'"');

Open;

end;

Table1.Edit;

Table1['Группа']:=str+s[length(s)]+'Д';

if (j mod 2)=0 then

Table1['Курс']:=Table1['Курс']+1;

Table1.Post;

if Query2['Группа']<>'' then begin

Query2.Edit;

Query2['Группа']:=Table1['Группа'];

Query2.Post;

end;

Table1.Next;

end;

end;

end;

closefile(f);

end;

end;


3. Технологическая часть

 

3.1 Системные требования и характеристики программы

1) ОС: Widows 95, 98, 2000, NT, Me, XP, Vista

2) 128 Мб ОЗУ, 1.7 ГГц

3) мышь, клавиатура

4) наличие установленной программы BDE Administrator

 

3.2  Руководство администратора базы данных.

Перед началом работы с базой данных необходимо установить программу BDE Administrator (рис. 1) Эта утилита может устанавливаться как с Delphi так и без него. В этой программе необходимо создать псевдоним базы и указать её местоположение. Для этого заходим в меню Object и выбираем New. В появившемся окне New Database Alias выбираем Standard и нажимаем OK.

рис. 1 Главное окно программы BDE Administrator

В левой колонке вводим псевдоним базы данных. В нашем случае это Profkom. Расположение базы нужно указать в поле Path.


Информация о работе «Создание базы данных»
Раздел: Информатика, программирование
Количество знаков с пробелами: 31167
Количество таблиц: 0
Количество изображений: 11

Похожие работы

Скачать
11120
0
6

... или отменить редактирования записи. При выборе пункта 4 на экран выведутся все записи. Упорядочивание по алфавиту происходит автоматически при создании, удалении или редактировании записи. При выборе пятого пункта пользователю предлагается сначала выбрать тип вместимости стадионов (равно, больше, меньше, больше или равно, меньше или равно), затем ввести вместимость, по которой хотите ...

Скачать
5600
0
21

... int(11)); mysql> DESCRIBE pokup; mysql> CREATE TABLE sale (cod_s int(11), cost_s float, date_s date, cod_pokup int(11), cod_prodav int(11)); mysql> DESCRIBE sale; Посмотрим список созданных таблиц mysql> SHOW TABLES; Вводим данные в таблицы. Сначала заполним таблицу sale mysql> INSERT INTO sale -> VALUES (3003, 767, "2005-03-04", 2001, 1001); ...

Скачать
21330
0
0

... за счет доменов прямо пропорционально количеству полей всех таблиц. Поэтому, обычно создают достаточное количество доменов для описания таблиц в БД, а потом создают сами таблицы. Вот выдержка из реальной базы данных для создания доменов: CREATE DOMAIN IZMER_NUM INTEGER NOT NULL; CREATE DOMAIN ACTIVITIES_NUM INTEGER NOT NULL; . . . CREATE DOMAIN NAMES_TYPE VARCHAR(45) COLLATE PXW_CYRL; CREATE ...

Скачать
19714
14
27

... Мягкий 31.07.2006 240 Познавательная Внешним ключом таблицы является поле Автор. Структуры созданных таблиц выглядят следующим образом: Структура таблицы «Авторы» созданной базы данных «Картотека книг»   Имя поля Тип данных Описание КодАвтора Счетчик Отражает числовое значение кода авторов книг Имя Текстовый (10) Имя автора Фамилия Текстовый (20) Фамилия автора ...

0 комментариев


Наверх