Скачать 435.83 Kb.
|
Задание 1. Добавьте 4 страницы и назовите их Оценки, Ученики, Класс, Предмет (рис. 7.3). Рис. 7.3. Задание 2. Добавьте на каждую вкладку соответствующие компоненты, что бы получилось следующее (рис. 7.4 – рис. 7.7): Рис. 7.4. Вкладка «Оценки» Рис. 7.5. Вкладка «Ученики» Рис. 7.6. Вкладка «Класс» Рис. 7.7. Вкладка «Предмет» Задача. Создать выпадающий список, содержащий имена всех учеников. Ход выполнения. 1. Чтобы легче было находить нужную информацию, применяются выпадающие списки. Создадим выпадающий список, в котором будут выводиться имена всех учеников. Для начала заполним этот список. Для этого создадим процедуру InitUchenik без параметров, которую будем вызывать каждый раз при добавлении, изменении, удалении любых данных из базы данных, и в которой будут инициализироваться все всплывающие списки. Нужно добавить на форму компонент SQLQuery и поменять его имя на UQuery для удобства. Данный компонент мы будем испоьзовать для всех запросов, которые касаются таблицы Uchenik. Конечно, вы можете для каждого запроса добавить свой компонент SQLQuery, но тогда может получиться путаница. В каждом компоненте SQLQuery нужно в свойстве Database написать Form1.MySQL50Connection1, чтобы связать с базой данных. 2. Теперь вернёмся к заполнению Combobox1 именами учеников. В Unit2 пишем в разделе Type после перечисления всех компонентов: Procedure initUchenik; А в разделе implementation после слова {TForm2} пишем следующую процедуру: Procedure TForm2.initUchenik; Var s,i:integer; Begin Combobox1.clear; // очищаем список Combobox4.clear; UQuery.SQL.Clear; // очищаем строку запроса UQuery.SQL.Append(‘select FIO, ID_uch from Uchenik;’); // добавляем запрос UQuery.Active:=true; // делаем запрос активным s:=UQuery.Fields.Fields[0].DisplayText; // присваиваем переменной s первую найденную запись, Field[0] означает, что берется только запись из первого поля запроса, то есть FIO. k:= UQuery.RecordCount; // считаем, сколько всего записей найдено по данному запросу // цикл используется для добавления каждой найденной записи в Combobox for i:=1 to k do begin Combobox1.Items.Append(UQuery.Fiels.Fields[0].DisplayText); Combobox4.Items.Append(UQuery.Fiels.Fields[1].DisplayText); UQuery.Next; // переход к следующей найденной записи End; UQuery.Active:=false; // делаем запрос не активным UQuery.SQL.Clear; // очищаем строку запроса End; В Combobox4 хранятся уникальные номера ученика (ID_uch). В дальнейшем данные уникальные номера нам пригодятся. Когда мы будем выбирать имя из выпадающего списка, то в Combobox4 будет выбираться соответствующий уникальный номер. Именно с этим номером мы и будем работать. Примечание: Combobox4 нужно сделать невидимым, для этого в свойстве Visible выбираем False. Задание 2. Создать процедуры InitKlass, InitPredmet, которые будут заполнять выпадающие списки Combobox2 (Combobox6 для ID_kl) и Combobox3 (Combobox8 для ID_pred) соответственно. Combobox6 и Combobox8 сделать невидимыми. Замечание: Добавьте на форму ещё два компонента SQLQuery, назовите их PQuery и KQuery, один будет использоваться для таблицы Predmet, другой для таблицы Klass. Практическая работа № 8. Создание форм для ввода, редактирования и удаления для таблиц Klass, Predmet с использованием DBGrid и DBNavigator Цель работы: научиться создавать формы для изменения записей в базе данных. Аппаратное и программное обеспечение: компьютер с установленной операционной системой Linux. Задача: Создать форму для модификации данных из таблицы Klass. Ход выполнения.
KQuery.SQL.Text:=’select * from Klass;’; KQuery.Open; DBGrid1.Colums.Items[0].Visible:=false; // сделали невидимым первый столбец DBGrid1.Colums.Items[1].Title.Caption:=’Класс’; // изменили название второго столбца
Procedure TForm2.Button2Click(Sender:TObject); begin KQuery.Close; KQuery.SQL.Clear; KQuery.SQL.Add(‘insert into Klass(ID_kl, Kl) values (null, :p1);’); KQuery.Params.Items[0].AsString:=edit1.text; // в качестве параметра берём данные из Edit1 KQuery.ExecSQL; Edit1.text:=’’; // очищаем содержимое Edit1 initKlass; // вызываем данную процедуру, чтобы обновить содержимое выпадающих списков и DBGrid. end; Замечание: Обратите внимание на запрос. В запросе мы написали null, так как MySQL сама сгенерирует уникальное число (когда мы создавали базу данных, то для этого поля писали auto_increment), а :p1 – это обычный параметр и в качестве параметра мы берём содержимое Edit1.
SQLQuery1.ApplyUpdates; Существуют следующие методы класса TSQLQuery для навигации по базе данных:
Замечание: Не каждый набор данных можно редактировать навигационным способом. Чтобы получить в результате SQL запроса редактируемый набор (то есть такой, что внесенные изменения можно было сохранить в базу данных), необходимо выполнение следующих условий:
Сейчас наша задача состоит в том, чтобы изменить данные в таблице Klass. Чтобы изменить запись в таблице, мы должны сначала нажать на кнопку Редактировать. После этого сделать необходимые изменения и для сохранения изменений нажать на кнопку Сохранить.
KQuery.Edit; В обработчике кнопки Сохранить пишем: KQuery.Post; KQuery.ApplyUpdates; Initklass; Соответственно для кнопки удалить пишем следующее: KQuery.delete; KQuery.ApplyUpdates; Initklass; Замечание: При нажатии на кнопку Удалить будет удалена текущая запись в DBGrid. Чтобы пользователь нечаянно не удалил нужные данные, дополним код, так чтобы получилось следующее (рис. 8. 1.): If MessageDlg('Удалить запись?', mtConfirmation, [mbYes, mbNo], 0)=mrYes then Begin KQuery.delete; KQuery.ApplyUpdates; Initklass; showmessage('Данные были успешно удалены!'); end; Рис. 8.1. Задание. Создайте форму для модификации данных таблицы Predmet. Практическая работа № 9. Создание форм для ввода, редактирования и удаления для таблицы Uchenik с использованием TDBEdit и TDBMemo Цель работы: научиться создавать формы для изменения записей в базе данных с помощью компонента TSQLQuery. Аппаратное и программное обеспечение: компьютер с установленной операционной системой Linux. Задача: Создать форму для ввода для таблицы ученик, используя реляционный метод доступа к данным.. Ход выполнения.
Рис. 9.1. Combobox1 является списком для выбора пола ученика. Для заполнения данного списка необходимо заполнить свойство Items компонента Combobox1 (рис. 9.2). Рис. 9.2. Задание 1. Аналогичным образом заполнить выпадающий список Изучаемый язык. Задание 2. Заполните выпадающий список Класс. Выпадающий список класс заполняется данными из таблицы Klass, поэтому его заполняем в процедуре InitKlass.
Procedure TForm3.Button1Click(Sender:TObject); BEGIN If (edit1.text=’’) and (edit2.text=’’) and (edit3.text=’’) and (edit4.text=’’) then showmessage(‘Заполнены не все поля!’) Else Begin Form2.UQuery.close; Form2.UQuery.SQL.Clear; Form2.UQuery.SQL.Add(‘insert into Uchenik(ID_uch, FIO, Data_r, Adres, Tel, Pol, Jazik, Roditeli, ID_kl) values (null, :p1, :p2, :p3, :p4, :p5, :p6, :p7, (select ID_kl from Klass where Kl=:p8));’); 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.ExecSQL; Form2.initUchenik; Edit1.text:=’’; Edit2.text:=’’; Edit3.text:=’’; Edit4.text:=’’; End; END; В данной процедуре проверяется, заполнены ли все поля, и если да, то данные добавляются, иначе выводится сообщение «Заполнены не все поля!». Внутри запроса используется вложенный запрос, который возвращает уникальный код класса ID_kl. Так как мы добавили новую запись, то необходимо обновить выпадающие списки, содержащие имена учеников, поэтому вызвали процедуру InitUchenik.
Рис. 9. 3. На странице Data Access находятся визуальные компоненты, предназначенные для организации доступа к данным:
Для того, чтобы информация о выбранном ученике отображалась в соответствующих полях необходимо сначала составить запрос, отбирающий по имени ученика записи. В свойстве SQL компонента SQLQuery1, напишем запрос, возвращающий все данные из таблицы Uchenik: Select * from Uchenik, Klass where Uchenik.ID_kl=Klass.ID_kl and FIO=:p1; В обработчике нажатия кнопки Изменить/Удалить напишем следующее: Procedure TForm2.Button7Click(Sender: TObject); Begin Form4.SQLQuery.Active:=false; Form4.SQLQuery.Params.Items[0].AsString:=Combobox1.Text; Form4.SQLQuery1.Active:=true; Form4.EditU; // про данную процедуру будет сказано ниже Form4.Show; End; Теперь добавим на форму с вкладки Data Access компоненты TDBEdit, TDBCombobox, TDBMemo. Необходимо добавить их такое количество, сколько аналогичных компонентов находится на форме, то есть рядом с Edit1 расположить DBEdit1, рядом с Combobox2 – DBCombobox2. Также эти компоненты необходимо сделать невидимыми. Делается всё это для того, чтобы данные можно было изменить. В компонентах TDBEdit, TDBCombobox, TDBMemo будет располагаться информация из базы данных, но эту информацию Lazarus (по не понятным причинам) не даёт изменять. Поэтому мы соответствующим компонентам TEdit, TCombobox, TMemo присвоим информацию из соответствующих компонентов TDBEdit, TDBCombobox, TDBMemo. А в компонентах TEdit, TCombobox, TMemo информацию можно будет спокойно изменить, а изменения в базу занести с помощью запроса. Напишем процедуру EditU для присваивания информации из соответствующих компонентов: Procedure TForm4.EditU; Begin Edit1.text:=DBEdit1.Text; Edit2.text:=DBEdit2.Text; Edit3.text:=DBEdit3.Text; Edit4.text:=DBEdit4.Text; Combobox1.text:=DBCombobox1.text; Combobox2.text:=DBCombobox2.text; Combobox3.text:=DBCombobox3.text; Memo1.text:=DBMemo1.text; End; |
Варианты заданий к расчетно–графической работе Переименовать базу данных Борей, назвав ее своей фамилией. Открыть переименованную базу данных и создать в ней следующие объекты | Программа по формированию навыков безопасного поведения на дорогах... Субд, освоение технологических приемов по созданию запросов в среде субд, контроль уровня знаний и умений учащихся по темам «Создание,... | ||
Урок по информатике по теме "Системы управления базами данных. Создание... Повторить понятие “База данных”, “поле базы данных”, “запись базы данных”, “субд” | Проект по информатике «портфолио для успешной карьеры» Создать базу данных профессий, изучить различные должности и развить навыки поиска работы | ||
Задания Вопросы и задачи, подлежащие разработке: Выяснить, что входит в учет основных средств. Создать программу и базу данных, позволяющих... | Понятие информационно – коммуникационных технологий – (икт) и их роль в образовательном процессе Повторить понятие “База данных”, “поле базы данных”, “запись базы данных”, “субд” | ||
Программа по формированию навыков безопасного поведения на дорогах... Создать структуру однотабличной базы данных, содержащую сведения о странах Европы. В таблицу включить следующие сведения: страна,... | Базы данных Для признания исключительного права на базы данных не требуется специальной регистрации (однако предпочтительно осуществлять государственную... | ||
Тема: Построение графиков в эт openOffice org Calc Дата Цель: научить оформлять данные в электронных таблицах OpenOffice org Calc с помощью графиков, выполнить тест по теме «Электронная... | Системы управления базами данных (субд) реферат по «Основам информационных технологий» ... | ||
Планирование и проектирование вашей базы данных в Access Продумайте ваши данные перед тем, как создавать вашу базу данных | Интерфейс доступа к базам данных Вы инсталлируете sql сервер, проектируете базу данных авиалиний и потребуете от персонала авиалиний использования этого приложение.... | ||
Программа по формированию навыков безопасного поведения на дорогах... Место урока в теме – урок проводится в ходе изучения темы “Информационные системы”, после изучения понятий базы данных, видов баз... | Программа по формированию навыков безопасного поведения на дорогах... Место урока в теме – урок проводится в ходе изучения темы “Информационные системы”, после изучения понятий базы данных, видов баз... | ||
OpenOffice Текстовый процессор Writer Данное пособие содержит методические рекомендации и инструкции для работы в текстовом процессоре Writer из пакета OpenOffice | Реферат по теме: «субд access. Основные понятия. Таблицы. Запросы.... «субд access. Основные понятия. Таблицы. Запросы. Формы. Отчёты. Создание базы данных» |