Задача: в субд openOffice Base создать табличную базу данных «Gurnal»





Скачать 435.83 Kb.
НазваниеЗадача: в субд openOffice Base создать табличную базу данных «Gurnal»
страница4/5
Дата публикации09.07.2014
Размер435.83 Kb.
ТипЗадача
100-bal.ru > Информатика > Задача
1   2   3   4   5

Замечание. Не забудьте добавить описание процедуры в раздел type.

Чтобы информация из базы данных отображалась в компонентах TDBEdit, TDBCombobox, TDBMemo необходимо изменить свойство Datasource на Datasource1, а в свойстве DataField написать название соответствующего поля из таблицы Uchenik. Например, для DBEdit1 в свойстве DataFields укажем FIO, для DBEdit2 – Data_r, для Combobox1 – Pol. При указании данных полей будет выдаваться ошибка (не может найти такое поле), вы не обращайте на неё внимание, просто закрывайте. Также добавьте на форму компонент DBText, который будет содержать ID_uch, сделайте данное поле невидимым.

Задание. Во всех компонентах пропишите свойства Datasource и DataFields.

Замечание. Не забудьте связать компонент Datasource с SQLQuery, а SQLQuery с Form1.MySQL50Connection1.

Теперь напишем в обработчике кнопки Сохранить следующий код:

Form2.UQuery.close;

Form2.UQuery.SQL.Clear;

Form2.UQuery.SQL.Add(‘update Uchenik set FIO=:p1, Data_r=:p2, Adres=:p3, Tel=:p4, Pol=:p5, Jazik=:p6, Roditeli=:p7, ID_kl=(select ID_kl from Klass where Kl=:p8) where ID_uch=:p9;’);

Form2.UQuery.Params.Items[0].Asstring:=edit1.text;

Form2.UQuery.Params.Items[1].Asstring:=edit2.text;

Form2.UQuery.Params.Items[2].Asstring:=edit3.text;

Form2.UQuery.Params.Items[3].Asstring:=edit4.text;

Form2.UQuery.Params.Items[4].Asstring:=Combobox1.text;

Form2.UQuery.Params.Items[5].Asstring:=Combobox2.text;

Form2.UQuery.Params.Items[6].Asstring:=Memo1.text;

Form2.UQuery.Params.Items[7].Asstring:= Combobox3.text;

Form2.UQuery.Params.Items[8].Asstring:=strtoint(DBText1.Caption);

Form2.UQuery.ExecSQL;

SQLQuery1.Active:=false;

SQLQuery1.Params.Items[0].Asstring:=Combobox1.text;

SQLQuery1.Active:=true;

Form2.initUchenik;

End;

В обработчике кнопки Удалить напишем следующее:

Procedure TForm4.ButtonClick(Sender: TObject);

Begin

Form2.UQuery.Close;

Form2.UQuery.SQL.Clear;

Form2.UQuery.SQL.Add(‘delete from Uchenik where ID_uch=:p1;’);

Form2.UQuery.Params.Items[0].Asinteger:=strtoint(DBText1.Caption);

Form2.UQuery.ExecSQL;

SQLQuery1.Refresh;

Form2.initUchenik;

End;

Форме у нас располагается компонент DBNavigator. Он позволяет перемещаться по записям таблицы базы данных. В свойстве Datasource нужно указать Datasource1, и сделать навигатор невидимым. Перечень видимых кнопок можно изменить в свойстве VisibleButtons.

При нажатии на кнопку предыдущая будет появляться предыдущая отобранная запись (такое возможно, если в базе данных есть ученики с полностью совпадающими именами). В обработчике кнопки Предыдущая пишем:

Procedure TForm4.Button3Click(Sender:TObject);

Begin

DBNavigator1.BtnClick(nbPrior);

EditU;

End;

В обработчите кнопки Следующая пишем:

Procedure TForm4.Button4Click(Sender:TObject);

Begin

DBNavigator1.BtnClick(nbNext);

EditU;

End;

Теперь форма для редактирования ученика готова.
Практическая работа № 10.

Создание форм для ввода, редактирования и удаления для таблиц Urok и Ozenka с использованием TDBEdit и TDBMemo

Цель работы: научиться создавать формы для изменения записей в базе данных с помощью компонента TSQLQuery.

Аппаратное и программное обеспечение: компьютер с установленной операционной системой Linux.

Задача: Создать форму для ввода нового урока и оценок ученика.

Ход выполнения.

    1. Создайте новую форму и поместите на ней необходимые компоненты, согласно следующему рисунку (рис. 10.1):



Рис. 10.1.

Компонент UrQuery будем использовать для всех операций, которые будем производить с таблицей Urok. Аналогично и для компонента OQuery.

Чтобы ввести новый урок необходимо на главной форме во вкладке Оценки выбрать из выпадающих списков класс и предмет, затем нажать кнопку Новый урок. При нажатии на данную кнопку должно проверяться условие, что выбран какой-либо класс и предмет, иначе должно выводиться соответствующее сообщение. Соответственно по нажатию на данную кнопку должна открываться форма Новый урок. Также при нажатии на кнопку в Label5 должен вписываться выбранный класс, а в Label7 – выбранный предмет.

Задание 1. Напишите код для обработки кнопки Новый урок.

Задание 2. Аналогично форме для ввода ученика напишите код для кнопки Добавить, для добавления урока.

Изначально кнопка Изменить должна быть невидна. Она должна появляться после того, как будет создан новый урок и выставлены оценки за данный урок. По нажатию на кнопку Изменить будет появляться форма для редактирования оценок.

Соответственно после добавления нового урока кнопка Добавить тоже становится невидимой или недоступной.

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

// в этой части кода определяется уникальный код урока, который только что добавили

UrQuery.SQL.Append(‘select max(ID_ur) from Urok;’);

UrQuery.Active:=true;

K:=strtoint(UrQuery.Fields.Field[0].DisplayText); //присвоили уникальный код урока ID_ur

Form7.Label3.Caption:=intostr(k);

UrQuery.Active:=false;

UrQuery.SQL.Clear;
// запрос на добавление оценок

// здесь происходит определение всех человек, которые учатся в указанном классе и для каждого из них добавляется запись в таблицу Ozenka, в данной записи поле Ozenka остается пока не заполненным

UrQuery.SQL.Append(‘insert into Ozenka ( ID_oz, ID_uch, ID_ur, Ozenka) values (null, :p1, :p2, null);’);

Form2.UQuery.Active:=false;

Form2.UQuery.SQL.Append(‘select ID_uch from Uchenik where ID_kl=:p1 order by FIO;’);

Form2.UQuery.params.items[0].asinteger:=strtoint(form2.combobox6.text);

Form2.UQuery.Active:=true;

F:=form2.UQuery.recordCount;

For i:=1 to f do begin

UrQuery.params.items[0].asinteger:=strtoint(form2.UQuery.Fields.Fields[0].DisplayText);

UrQuery.Params.Items[1].Asinteger:=k;

UrQuery.ExecSQL;

Form2.UQuery.Next;

End;

Form2.UQuery.Active:=false;

Form2.UQuery.SQL.Clear;

// данная часть кода нужна для заполнения DBGrid данными об оценках, которые получили ученики за этот урок

UrQuery.Active:=false;

UrQuery.SQL.Clear;

UrQuery.SQL.Append(‘select Uchenik.FIO, Ozenka.Ozenka, Ozenka.ID_oz from Uchenik, Ozenka where Uchenik.ID_uch=Ozenka.ID_uch and Ozenka.ID_ur=:p1;’);

UrQuery.Params.Items[0].AsInteger:=k;

UrQuery.Active:=true;

DBGrid1.Columns.Items[2].visibl:=false;

DBGrid1.Columns.Items[0].title.Caption:=’ФИО’;

DBGrid1.Columns.Items[1].Title.Caption:=’Оценка’;

Form2.initUchenik;

//открытие формы для выставления оценок

Form7.SQLQuery1.Active:=false;

Form7.SQLQuery1.Params.Items[0].asinteger:=k;

Form7.SQLQuery1.Active:=true;

Form7.Show;

Form7.Combobox1.text:=form7.DBEdit2.text; // присвайваем значение из базы данных, чтобы его можно было потом изменить

Form6.close;

Как вы заметили в коде присутствует Form7, эта форма предназначена для редактирования оценок.

Задание3. Создайте данную форму Выставление оценок, имеющую следующий вид (рис. 10.2):



Рис. 10.2.

Поле DBEdit2 необходимо сделать невидимым. В Combobox1 ввести все оценки и знак отсутствия на уроке «н». В обработчике кнопки <<Пред. Ввести следующий код:

Procedure Tform7.Button1Click(Sender: TObject);

Begin

EditOz; // буде описана ниже

SQLQuery1.Prior;

Combobox1.Text:=DBEdit2.Text;

End;

Аналогично для кнопки След.>>, только вместо Prior ввести Next.

В компоненте SQLQuery1 будет содержаться следующий запрос:

Select Uchenik.FIO,Ozenka.Ozenka, Ozenka.ID_oz from Uchenik,Ozenka where Uchenik.ID_uch=Ozenka.ID_uch and Ozenka.ID_ur=:p1 order by Uchenik.FIO;

Именно с этим запросом мы будем связывать компоненты DBEdit1, DBEdit2, DBText1 (хранит уникальный код оценки ID_oz). Label3 необходимо сделать невидимой, так как она хранит ID_ur.

Теперь напишем процедуру EditOz:

Procedure Tform7.EditOz;

Begin

Form6.UrQuery.Close;

Form6.UrQuery.Sql.Add(‘update Ozenka set Ozenka=:p1 where ID_oz=:p2;’);

Form6.UrQuery.Params.Items[0].asstring:=combobox1.text;

Form6.UrQuery.Params.Items[1].asinteger:=strtoint(DBText1.Caption);

Form6.UrQuery.ExecSQL;

SQLQuery1.Active:=false;

SQLQuery1.Params.Items[0].Asinteger:=strtoint(Label3.Caption);

SQLQuery1.active:=true;

End;

Данная процедура предназначена для изменения таблицы Ozenka, при каждом нажатии на кнопку <<Пред. Или След.>> будет вызываться данная функция, что гарантирует сохранение сделанных изменений.

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

Form6.show;

Form7.close;

Form6.urquery.active:=false;

Form6.urquery.sql.clear;

Form6.urquery.sql.append(‘select Uchenik.FIO,Ozenka.Ozenka, Ozenka.ID_oz from Uchenik, Ozenka where Uchenik.ID_uch=Ozenka.ID_uch and Ozenka.ID_ur=:p1;’);

Form6.urquery.params.items[0].asinteger:=strtoint(Label3.Caption);

Form6.UrQuery.Active:=true;

Form6.DBGrid1.Columns.Items[2].visible:=false;

Form6.DBGrid1.Columns.Items[0].Title.Caption:=’ФИО’;

Form6.DBGrid1.Columns.Items[0].Width:=280; //размер поля ФИО

Form6.DBGrid1.Columns.Items[1].title.caption:=’Оценка’;

По нажатию на кнопку Изменить будет открываться форма для изменения оценок, а форма Новый урок закрываться.

Практическая работа № 11.

Реализация запросов в приложении

Цель работы: научиться осуществлять поиск записей в базе данных с использованием запросов.

Аппаратное и программное обеспечение: компьютер с установленной операционной системой Linux.

Задача: Создать запрос, переводящий учеников с одного класса в другой.

Ход выполнения.

Идея такова: из одного выпадающего списка выбираем класс из которого хотим перевести учеников, а во втором списке – класс в который хотим этих учеников перевести и нажимаем кнопку Перевести.

1. Для реализации перевода учеников в другой класс, создадим новую форму. Поместим на неё соответствующие компоненты как показано на рисунке ниже (рис. 11.1):



Рис. 11.1.

Combobox1 и Combobox2 содержат названия классов, поэтому их необходимо заполнить в процедуре InitKlass.

В обработчике нажатия кнопки Добавить пишем следующее:

Procedure TForm9.ButtonClick(Sender: TObject);

Var f, i:integer;

BEGIN

If (Combobox1.Itemintex=-1) or (Combobox2.Itemindex=-1) then

Showmessage(‘Введены не все данные!’)

Else begin

If messageDlg(‘Перевести из ‘+Combobox1.text+’ в ‘+Combobox2.text+’ класс?’, mtConfirmation, [mbYes,mbNo], 0)=mrYes then Begin

Form2.KQuery.active:=false;

Form2.KQuery.SQL.Clear;

Form2.UQuery.Active:=false;

Form2.UQuery.SQL.Clear;

Form2.UQuery.SQL.Append(‘select ID_uch from Uchenik where ID_kl=(select ID_kl from Klass where Kl=:p1);’); // выбирает всех учеников которые учатся в данном классе

Form2.UQuery.Params.Items[0].asstring:=Combobox1.text;

Form2.UQuery.active:=true;

Form2.KQuery.SQL.Append(‘update Uchenik set ID_kl=(select ID_kl from Klass where Kl=:p1) where ID_uch=:p2;’); // изменяем класс в котором учится ученик

F:=form2.UQuery.RecordCount; // подсчитываем количество записей найденных по запросу

For i:=1 to f do

Begin

Form2.KQuery.Params.Items[0].asstring:=Combobox2.Text;

Form2.KQuery.Params.Items[1].asstring:=strtoint(form2.UQuery.Fields.Fields[0].DisplayText);

Form2.KQuery.ExecSQL;

Form2.UQuery.next;

End;

Form2.UQuery.Active:=false;

Showmessage(‘Данные были успешно изменены!’);

Form2.initKlass;

End;

End;

END;

Combobox1.ItemIndex=-1 означает, что из выпадающего списка ничего не выбрано. В данной процедуре сначала создаётся запрос, ищущий всех учеников из выбранного в Combobox1 класса. Затем создаем запрос, который изменяет для каждого выбранного ученика ID_kl.

Не забудьте в на Form2 в кнопки Перевести написать открытие формы Перевод в другой класс.

Задание 1. Создайте на форме Перевод в другой класс кнопку, при нажатию на которую все учащиеся школы будут переводиться в следующий класс.

Задание2. Создайте форму, в которой будут выводиться учащиеся выбранного класса (класс выбирается в DBGrid1). В качестве параметра берём строку таблицы DBGrid1:

UQuery.Params.Items[0].Asinteger:=KQuery.FieldByName(‘ID_kl’).Asinteger;
Практическая работа № 12.

Создание формы, являющейся аналогом страницы школьного журнала

Цель работы: научиться создавать связанные таблицы данных.

Аппаратное и программное обеспечение: компьютер с установленной операционной системой Linux.

Задача: Создать форму, аналогичную странице школьного журнала.

Ход выполнения.

  1. Создадим новую форму (в нашем случае будет Form8), добавим на неё компоненты: две TDBGrid, два TDatasource, два TSQLQuery. Расположим их следующим образом (рис. 12.1):



Рис. 12.1.

Данная форма будет являться аналогом страницы школьного журнала. В DBGrid1 будут содержаться оценки ученика, а в DBGrid2 – дата урока, тема, домашнее задание. При нажатии на определенный урок в таблице с оценками будут появляться оценки за данный урок.

Данная форма должна появляться при нажатии на кнопку Изменить/Удалить, расположенную на Form2. Данная кнопка должна проверять то, что выбран класс и предмет из выпадающих списков. Также по нажатию на данную кнопку заполняется таблица DBGrid, содержащая темы всех уроков в данном классе по данному предмету. В обработчике данной кнопки пишем следующее:

Procedure TForm2.Button1.Click(Sender: TObject);

Begin

If (Combobox2.ItemIndex=-1) and (Combobox3.ItemIndex=-1) then

Showmessage(‘Выберите класс и предмет!’);

Red_ur;

Form8.show;

End;

Теперь создадим и опишем процедуру red_ur:

Procedure TForm2.Red_ur;

Begin

Combobox6.ItemIndex:=Combobox2.ItemIndex;

Combobox8.ItemIndex:=Combobox3.ItemIndex;

Form8.SQLQuery2.Active:=false;

Form8.SQLQuery.SQL.Clear;

Form8.SQLQuery2.SQL.Append(‘select Distinct Urok.ID_ur, Urok.Data_ur as Дата, Urok.Tema as Тема, Urok.Dom_z, Urok.N_ur from Uchenik, Ozenka, Urok where Urok.ID_ur=Ozenka.ID_ur and Ozenka.ID_uch=Uchenik.ID_uch and Uchenik.ID_kl=:p1 and Urok.ID_predm=:p2;’);

Form8.SQLQuery2.Params.Itams[0].AsInteger:=strtoint(Combobox6.Text);

Form8.SQLQuery2.Params.Itams[1].AsInteger:=strtoint(Combobox8.Text);

Form8.SQLQuery2.Active:=true;

Form8.DBGrid2.Columns.Items[0].Visible:=false;

Form8.DBGrid2.Columns.Items[1].width:=100;

Form8.DBGrid2.Columns.Items[2].width:=250;

Form8.DBGrid2.Columns.Items[3].width:=150;

Form8.DBGrid2.Columns.Items[3].title.caption:=’Домашнее задание’;

Form8.DBGrid2.Columns.Items[4].Title.Caption:=’№ урока’;

End;

Запись вида:

Combobox6.ItemIndex:=Combobox2.ItemIndex

означает, что порядковый номер выбранной записи из Combobox2 передаётся Combobox6, который содержит уникальные номера классов.

  1. Теперь необходимо сделать так, чтобы при нажатии на поле с определенным уроком выдавались оценки учеников за данный урок. Для этого в нажмем дважды на DBGrid2 и в обработчике напишем следующий код:

Procedure TForm8.DBGrid2CellClick(Column: TColumn);

Begin

SQLQuery1.Active:=false;

SQLQuery1.SQL.Clear;

SQLQuery1.SQL.Append(‘select Uchenik.FIO as ФИО, Ozenka.ID_uch, Ozenka.Ozenka as Оценка from Uchenik,Ozenka where Uchenik.ID_uch=Ozenka.ID_uch and Ozenka.ID_ur=:p1 order by Uchenik.FIO;’);

SQLQuery1.Params.Items[0].asinteger:=SQLQuery2.FieldByName(‘ID_ur’).ASInteger;

SQLQuery1.active:=true;

DBGrid1.Columns.Items[1].visible:=false;

DBGrid1.Columns.Items[0].width:=250;

End;

Здесь в качестве параметра берётся текущая строка таблицы DBGrid, а точнее значение поля ID_ur, которое мы сделали невидимым (DBGrid1.Columns.Items[1].visible:=false).
1   2   3   4   5

Похожие:

Задача: в субд openOffice Base создать табличную базу данных «Gurnal» iconВарианты заданий к расчетно–графической работе
Переименовать базу данных Борей, назвав ее своей фамилией. Открыть переименованную базу данных и создать в ней следующие объекты
Задача: в субд openOffice Base создать табличную базу данных «Gurnal» iconПрограмма по формированию навыков безопасного поведения на дорогах...
Субд, освоение технологических приемов по созданию запросов в среде субд, контроль уровня знаний и умений учащихся по темам «Создание,...
Задача: в субд openOffice Base создать табличную базу данных «Gurnal» iconУрок по информатике по теме "Системы управления базами данных. Создание...
Повторить понятие “База данных”, “поле базы данных”, “запись базы данных”, “субд”
Задача: в субд openOffice Base создать табличную базу данных «Gurnal» iconПроект по информатике «портфолио для успешной карьеры»
Создать базу данных профессий, изучить различные должности и развить навыки поиска работы
Задача: в субд openOffice Base создать табличную базу данных «Gurnal» iconЗадания
Вопросы и задачи, подлежащие разработке: Выяснить, что входит в учет основных средств. Создать программу и базу данных, позволяющих...
Задача: в субд openOffice Base создать табличную базу данных «Gurnal» iconПонятие информационно – коммуникационных технологий – (икт) и их роль в образовательном процессе
Повторить понятие “База данных”, “поле базы данных”, “запись базы данных”, “субд”
Задача: в субд openOffice Base создать табличную базу данных «Gurnal» iconПрограмма по формированию навыков безопасного поведения на дорогах...
Создать структуру однотабличной базы данных, содержащую сведения о странах Европы. В таблицу включить следующие сведения: страна,...
Задача: в субд openOffice Base создать табличную базу данных «Gurnal» iconБазы данных
Для признания исключительного права на базы данных не требуется специальной регистрации (однако предпочтительно осуществлять государственную...
Задача: в субд openOffice Base создать табличную базу данных «Gurnal» iconТема: Построение графиков в эт openOffice org Calc Дата
Цель: научить оформлять данные в электронных таблицах OpenOffice org Calc с помощью графиков, выполнить тест по теме «Электронная...
Задача: в субд openOffice Base создать табличную базу данных «Gurnal» iconСистемы управления базами данных (субд) реферат по «Основам информационных технологий»
...
Задача: в субд openOffice Base создать табличную базу данных «Gurnal» iconПланирование и проектирование вашей базы данных в Access
Продумайте ваши данные перед тем, как создавать вашу базу данных
Задача: в субд openOffice Base создать табличную базу данных «Gurnal» iconИнтерфейс доступа к базам данных
Вы инсталлируете sql сервер, проектируете базу данных авиалиний и потребуете от персонала авиалиний использования этого приложение....
Задача: в субд openOffice Base создать табличную базу данных «Gurnal» iconПрограмма по формированию навыков безопасного поведения на дорогах...
Место урока в теме – урок проводится в ходе изучения темы “Информационные системы”, после изучения понятий базы данных, видов баз...
Задача: в субд openOffice Base создать табличную базу данных «Gurnal» iconПрограмма по формированию навыков безопасного поведения на дорогах...
Место урока в теме – урок проводится в ходе изучения темы “Информационные системы”, после изучения понятий базы данных, видов баз...
Задача: в субд openOffice Base создать табличную базу данных «Gurnal» iconOpenOffice Текстовый процессор Writer
Данное пособие содержит методические рекомендации и инструкции для работы в текстовом процессоре Writer из пакета OpenOffice
Задача: в субд openOffice Base создать табличную базу данных «Gurnal» iconРеферат по теме: «субд access. Основные понятия. Таблицы. Запросы....
«субд access. Основные понятия. Таблицы. Запросы. Формы. Отчёты. Создание базы данных»


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск