Смекни!
smekni.com

Создание базы данных (стр. 3 из 4)

Query1.Next;

n:=n+1;

end;

//Переходим на следующую группу

Query2.Next;

end;

//Переходим на следующий факультет

Query3.Next;

end;

//Возвращаемся к началу БД студенты

Table1.First;

//Удаляем все записи, кроме недавно добавленных

for i:=1 to n do

Table1.Delete;

2.5 Разработка средств редактирования БД

Также в курсовом проекте предусмотрено добавление и удаление студентов, а также добавление и удаление групп.

Добавление студентов осуществляется в новом окне, а сама процедура добавления заключается в нижеприведенном коде:

//Добавляем запись, поля которой соответствуют текущим значениям 3-х списков и полю Edit1 вконецБД

Form1.Table1.AppendRecord([1,Edit1.Text,ComboBox1.Items[ComboBox1.ItemIndex],ComboBox2.Items[ComboBox2.ItemIndex],ComboBox3.Items[ComboBox3.ItemIndex]]);

Form1.Table1.First;

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

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

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) наличие установленной программы BDEAdministrator

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

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

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

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

3.3 Руководство пользователя

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

На рисунке 2 показано главное окно программы. В нём отображаются поля: “Номер”- номер студента по журналу, “ФИО”- фамилия, имя и отчество студента, ”Факультет”- шифр факультета на котором обучается данный студент, ”Курс” – номер курса на котором обучается студент, соответствующий году обучения студента в университете, “Группа”- шифр и номер группы обучающегося, “Поощрения”- различные поощрения, выдаваемые иногородним студентам, учащимся с тяжёлым материальным положением и так далее, “Сумма”- сумма выданного поощрения, “Дата выдачи”- число, месяц и год когда выдано поощрение, “Примечание”- любая дополнительная информация о выданном поощрении, “Поездки”- поездки от профкома студентов КФ МГТУ и “Примечания”- информация о поездке. Любые изменения, производимые в этом окне, будут сохранены автоматически, но только тогда, когда курсор после необходимых изменений будет переставлен на любую другую ячейку.

Добавление студента в базу данных.

рис. 3 Добавление студента в базу данных

Чтобы добавить студента в таблицу необходимо выбрать меню “Правка”- “Добавить”. В появившемся окне (рис. 3) из выплывающего списка нужно выбрать факультет, курс и группу добавляемого студента. В поле ввода нужно вписать фамилию имя и отчество учащегося. После окончания ввода, нужно нажать кнопку “Добавить”.

Простой поиск студента в базе данных

рис. 4 Простой поиск студента в базе данных

Под “простым поиском” понимается поиск только одного человека в базе данных с возможностью изменения данных о нём. Чтобы воспользоваться простым поиском, необходимо нажать “Файл”- “простой поиск” или воспользоваться быстрым запуском. Для быстрого запуска необходимо одновременно нажать кнопки “Ctrl” и ”F”. В появившемся окне (рис. 4) в поле ввода вводится фамилия, имя и отчество студента после чего нужно нажать кнопку “Искать”. После этих действий отобразиться будет выведена вся информация о студенте. Если в поле ввода фамилия имя отчество были введены не полностью (например, только фамилия) и программа вывела не нужного студента то нужно нажимать кнопку “Искать далее” пока нужный студент не будет найден. Если студента с таким ФИО нет в базе, то будет выведено соответствующее окно с надписью “Ничего не найдено” (рис. 5) Чтобы вы вернуться к главному окну программы нужно нажать кнопку “Отобразить все”.

рис. 5 Окно ошибки, возникающее, если студент не был найден

Удаление студента из базы данных:

рис. 6 Удаление студента из базы данных

Удаление студента производиться с помощью простого поиска (“Файл” – “Простой поиск”). В появившемся окне (рис. 4) необходимо ввести фамилию имя и отчество студента. Но если полностью ФИО неизвестно, то можно ввести только фамилию и имя или только фамилию и даже только первые буквы фамилии. Когда нужный студент найден, нажмите “ОК”. Для его удаления необходимо нажать “Удалить” и в появившемся окне подтверждения удаления нажать “ОК”.

Расширенный поиск