Курсовая работа: Разработка базы данных флагов мира

Курсовая работа: Разработка базы данных флагов мира




💣 👉🏻👉🏻👉🏻 ВСЯ ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻




























































Министерство образования и науки Украины
Харьковский национальный университет радиоэлектроники
Тема: " Разработка базы данных флагов мира"
Харьковский национальный университет радиоэлектроники
Кафедра программного обеспечения ЭВМ
Дисциплина: "Организация баз данных и знаний"
Специальность: "Программное обеспечение автоматизированных систем"
1. Тема проекта "Разработка базы данных флагов мира"
2. Срок сдачи студентом готового проекта
3. Исходные данные к проекту среда Delphi 7, создание таблиц баз данных с помощью Database Desktop, система управления базами данных Paradox.
4. Содержание пояснительной записки введение, анализ предметной области, постановка задачи, разработка структуры базы данных, разработка прикладной программы, программная реализация, анализ организации данных, анализ программного кода, описание программы, интерфейс пользователя, инструкция пользователя, системные требования, выводы.
5. Дата получения задания 3 марта 2008 г.
Объем пояснительной записки – __страниц. Пояснительная записка содержит _ рисунков, __ таблицы и ___ приложений.
Целью курсового проекта является разработка прикладной программы, организующей работу с базой данных флагов мира, осуществляющей просмотр и редактирование базы данных, поиск по категориям, сортировку данных.
Во время выполнения курсовой работы изучены методы программирования на языке Object Pascal c использованием среды разработки приложений Borland Delphi 7, рассмотрены методы организации и работы с базами данных.
В результате выполнения работы была написана программа на языке Object Pascal, реализующая работу с базой данных.
Программа, меню, анализ, borland delphi 7, алгоритм, функция, метод, интерфейс пользователя, файл, окно, изображение, поиск, метод, запрос, использование, база данных.
Метою курсового проекту є розроблення прикладної програми, яка органiзує роботу с базою данних аудiо файлов, дозволяє проглядати та редагувати даннi, а також реалiзує пошук та сортировку данних.
Під час виконання курсової роботи були вивчені методи програмування алгорітмічною мовою Object Pascal, з використанням інтегрованого середовища розробки 32-разрядних додатків для Windows Borland DELPHI 7, розглянуті методи роботи з базами даних.
У наслідку виконання роботи була написана програма мовою Object Pascal, яка реалізує роботу з базою данних.
Програма, меню, аналiз, borland delphi 7, алгоритм, функцiя, метод, iнтерфейс користувача, файл, окно, зображення, пошук, метод, запрос, використання, база данных.
В настоящее время, когда ЭВМ прочно вошли в производственную деятельность человека, нет необходимости доказывать эффективность использования вычислительной техники в системах управления технологическими процессами, проектирования, научных исследований, административного управления, в учебном процессе, банковских расчетах, здравоохранении, сфере обслуживания и т.д. Современные ЭВМ стали достаточно производительными, в результате чего рядовой пользователь получил широкие возможности применения компьютера в своей жизни. Эта область и сегодня продолжает динамично развиватся, постоянно появляються новые технологии и направления в развитии информационных технологий.
В современных условиях одной из распространенных задач для прикладного программиста является разработка и администрирование баз данных. Базы данных используются тогда, когда возникает потребность манипулировать большими массивами данных.
С ростом популярности СУБД в 70-80-х годах появилось множество различных моделей данных. У каждой из них имелись свои достоинства и недостатки, которые сыграли ключевую роль в развитии реляционной модели данных, появившейся во многом благодаря стремлению упростить и упорядочить первые модели данных.
Восприятие реального мира можно соотнести с последовательностью разных, хотя иногда и взаимосвязанных, явлений. С давних времен люди пытались описать эти явления (даже тогда, когда не могли их понять). Такое описание называют данными.
Традиционно фиксация данных осуществляется с помощью конкретного средства общения (например, с помощью естественного языка или изображений) на конкретном носителе (например, камне или бумаге). Обычно данные (факты, явления, события, идеи или предметы) и их интерпретация (семантика) фиксируются совместно, так как естественный язык достаточно гибок для представления того и другого.
Создание (программирование) базы данных и работа с ними осуществляется при помощи систем управления базами данных (СУБД), таких как MS Access, Oracle, dBase, FoxPro, Paradox, Clipper, Clarion.
Основные стадии развития любого программного продукта, в том числе и приложения, управляющего базой данных, включают в себя такие этапы как: проектирование, реализация и эксплуатация. Наиболее значительным из них является стадия проектирования. От того, насколько тщательно продумана структура базы, насколько четко определены связи между ее элементами, зависит производительность системы, а значит - и востребованность программного продукта.
Поэтому хорошо спроектированная база данных должна:
— Удовлетворять всем требованиям пользователей к содержимому базы данных.
— Гарантировать непротиворечивость и целостность данных. При проектировании таблиц нужно определить их атрибуты и некоторые правила, ограничивающие возможность ввода пользователем неверных значений. Для верификации данных перед непосредственной записью их в таблицу база данных должна осуществлять проверку данных и тем самым гарантировать сохранение целостности информации.
— Обеспечивать естественное, легкое для восприятия структурирование информации.
Качественное построение базы позволяет делать запросы к базе более “прозрачными” и легкими для понимания; следовательно, снижается вероятность внесения некорректных данных и улучшается качество сопровождения базы.
— Удовлетворять требованиям пользователей к производительности базы данных. При больших объемах информации вопросы сохранения производительности начинают играть главную роль, сразу показывая все недочеты этапа проектирования.
Для решения поставленной задачи, сделать базу данных флагов мира, необходимо реализовать следующие функции: добавление записей в таблицу language.db, добавление записей в таблицу countries.db, редактирование данных о стране (её название, столица, данные и флаг) а также её государственных языках. Сортировка по выбранному полю.
- поле «Информация о стране» - мемо поле,
Как уже было сказано в задании курсового, проекта необходимо создать приложение для работы с базой данных флагов мира. Программа должна позволять просматривать записи базы данных и редактировать их (т.е. добавлять новые записи, изменять их и удалять ненужные). Также должна существовать система поиска данных и сортировки по различным категориям.
Для реализации данного задания мною была выбрана интегрированная среда быстрой разработки приложений Borland Delphi 7. Средства Delphi 7 позволяют создавать мощные и гибкие программные средства для работы с базами данных. Имеются несколько основных компонентов (объектов), которые необходимо использовать постоянно для доступа к БД. Эти объекты могут быть разделены на три группы:
— визуальные: TDBGrid, TDBEdit, TDBImage.
Первая группа включает невизуальные классы, которые используются для управления таблицами и запросами. Эта группа сосредотачивается вокруг компонент типа TTable, TQuery. В Палитре Компонент эти объекты расположены на странице Data Access.
Вторая важная группа классов - визуальные, которые показывают данные пользователю, и позволяют ему просматривать и модифицировать их. Эта группа классов включает компоненты типа TDBGrid, TDBEdit, TDBImage. В Палитре Компонент эти объекты расположены на странице Data Controls.
Имеется и третий тип, который используется для того, чтобы связать предыдущие два типа объектов. К третьему типу относится только невизуальный компонент TDataSource.
При выполнении курсового проекта с помощью Database Desktop были созданы четыре таблицы для хранения данных: “Kontinent”, “Country”, “Language”, “Main”. Таблица “Kontinent” содержит данные о частях мира и их описание. Поля с описанием полей приведены в таблице 3.1.
Таблица 3.1 – Поля таблицы “Kontinent.db”
Данное поле является ключевым и служит для связывания двух таблиц
Содержит строку с именем континента.
Содержит строку с информацией о континенте.
Вторая таблица – “Country” – хранит сведения о стране. Описание полей их типов и назначения в таблице “Country” приведено в таблице 3.2.
Таблица 3.2 – Поля таблицы “Country.db”
Данное поле является ключевым и служит для связывания двух таблиц
Данное поле служит для связывания c таблицей “Kontinent”, ссылка на номер Континента
Третья таблица – “Language” – хранит сведения о языках мира. Описание полей их типов и назначения в таблице “Language” приведено в таблице 3.3.
Таблица 3.3 – Поля таблицы “Language.db”
Данное поле является ключевым и служит для связывания двух таблиц
Четвертая таблица – “Main” – связывает таблицу “Country” и “Language”, она нужна для уменьшения объёма базы данных. Описание полей их типов и назначения в таблице “Main” приведено в таблице 3.4.
Таблица 3.4 – Поля таблицы “Main.db”
Данное поле является ключевым и служит для связывания двух таблиц
Данное поле служит для связывания c таблицей “Country”, ссылка на номер страны
Данное поле служит для связывания c таблицей “Language”, ссылка на номер языка
В результате работы над курсовым проектом была разрабоатна программа на языке Object Pascal, реализующая базу данных флагов мира. Программа состоит из 7 модулей и файла проекта.
Функции и обработчики событий программы.
procedure bbAddCountryClick(Sender: TObject);
procedure bbAddLanClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure bbEditCountryClick(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure bbSeekClick(Sender: TObject);
procedure bbDelCountryClick(Sender: TObject);
procedure sbSeekClick(Sender: TObject);
procedure DBGrid2DblClick(Sender: TObject);
procedure sbAddLanClick(Sender: TObject);
procedure sbAddCountryClick(Sender: TObject);
procedure sbEditCountryClick(Sender: TObject);
procedure sbDelCountryClick(Sender: TObject);
procedure bbOpenDialogClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure cbLanguage1Change(Sender: TObject);
procedure cbLanguage2Change(Sender: TObject);
procedure cbLanguage3Change(Sender: TObject);
procedure bbCreateClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure FormShow(Sender: TObject);
procedure cbLanguage1Change(Sender: TObject);
procedure cbLanguage2Change(Sender: TObject);
procedure cbLanguage3Change(Sender: TObject);
procedure bbOpenDialogClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure FormShow(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure bbCreateClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure DataModuleCreate(Sender: TObject);
procedure mmSortCountryCountryClick(Sender: TObject);
procedure mmSortCountryCapitalClick(Sender: TObject);
procedure mmSortLanAscClick(Sender: TObject);
procedure mmSortLanDesClick(Sender: TObject);
procedure mmSortKontinentAscClick(Sender: TObject);
procedure mmSortKontinentDesClick(Sender: TObject);
procedure mmAboutClick(Sender: TObject);
procedure mmExitClick(Sender: TObject);
procedure tbKontinentAfterScroll(DataSet: TDataSet);
procedure mmAddCountryClick(Sender: TObject);
procedure mmAddLanClick(Sender: TObject);
procedure mmEditCountryClick(Sender: TObject);
procedure mmDelCountryClick(Sender: TObject);
procedure mmSeekClick(Sender: TObject).
Общий вид интерфейса пользователя представлен на рисунке 5.1.1.
Рисунок 5.1.1 - Интерфейс пользователя
Разработанный интерфейс пользователя отвечает поставленной задаче. Выдача информации наглядна – имеется таблица, с помощью которой пользователь может легко выбрать интересующий его континент, а потом страну. Также предусмотрена помощь пользователю в виде появляющихся в строке подсказок сообщений. Для удобства пользователей данной прикладной программы было спроектировано меню инструментов, позволяющее редактировать базу данных, сортировать и искать записи. Данное меню состоит из таких частей: редактирование, сортировка, поиск.
— Добавить язык – добавляет новые записи в таблицу языков.
— Добавить страну – добавляет новые записи в таблицу стран.
— Редактировать страну – изменяет имеющиеся записи в таблице стран.
— Удалить страну – удаляет ненужные записи из таблицы стран.
— Континенты-прямая – сортирует таблицу континентов по полю континент от А до Я.
— Континенты-обратная – сортирует таблицу континентов по полю континент от Я до А.
— Языки-прямая – сортирует таблицу языков по полю континент от А до Я.
— Языки-обратная – сортирует таблицу языков по полю континент от Я до А.
— Страны-по странам - сортирует данные по исполнителю.
— Страны-по столицам - сортирует данные по песне.
С помощью этой формы пользователь может создать новую страну. При нажатии кнопки «Загрузить рисунок» появится диалоговое меню выбора файла формата «BMP» в котором содержится изображение флага. Имеется контроль за правильностью выбора языков (т.е языки не могут повторяться, не может существовать второго государственного языка если не существует первого и т.п.). После заполнения формы пользователь должен нажать кнопку «Создать запись» и если форма заполнена корректно – запись создастся, а если нет, то выскочит предупреждение об ошибке.
Рисунок 5.1.3 – Добавление нового языка
С помощью этой формы пользователь может создать новый язык. После заполнения формы пользователь должен нажать кнопку «Создать запись» и если форма заполнена корректно – язык будет создан, а если нет, то выскочит предупреждение об ошибке.
Рисунок 5.1.4 – Редактирование стран
С помощью этой формы пользователь может редактировать существующую страну. При нажатии кнопки «Загрузить рисунок» появится диалоговое меню выбора файла формата «BMP» в котором содержится изображение флага. Имеется контроль за правильностью выбора языков (т.е языки не могут повторятся, не может существовать второго государственного языка если не существует первого и т.п.). После заполнения формы пользователь должен нажать кнопку «Сохранить изменения» и если форма заполнена корректно – изменения в БД сохранятся, а если нет, то выскочит предупреждение об ошибке.
После того как появилось диалоговое окно надо ввести название страны, причём название должно быть полностью идентичное находящемуся в таблице (к примеру страна «украина» не будет найдена в отличии от «Украина») . Когда поле заполнено следует нажать кнопку “OK”.
Для работы с базой данных аудио файлов не надо создавать через DataBase Desktop Alias, т.к. базы уже находятся в корневой папке и запуск программы должен осуществляться следующим образом:
5.3 Системные требования к программе

Для функционирования данной программы требуется:
— 32-х разрядная операционная система Windows 95/NT4 или выше.
— персональный компьютер Pentium 133
— 8Мб свободного места на жестком диске
В курсовом проекте была разработына программа базы данных флагов мира с использованием базы данных Paradox 7. Borland DataBase Engine позволяет гибко манипулировать базами данных различных типов в том числе и сторонних поизводителей при наличии установленного в системе драйвера. Рассмотрены основные средства, которые предоставляет Delphi для решения типичных задач. Имеются несколько основных компонентов (объектов), которые необходимо использовать постоянно для доступа к БД. Эти объекты могут быть разделены на три группы:
визуальные: TDBGrid, TDBEdit, TDBImage
Первая группа включает не визуальные классы, которые используются для управления таблицами и запросами. Эта группа сосредотачивается вокруг компонент типа TTable, TQuery, TDataSet и TField. В Палитре Компонент эти объекты расположены на странице Data Access.
Вторая важная группа классов - визуальные, которые показывают данные пользователю, и позволяют ему просматривать и модифицировать их. Эта группа классов включает компоненты типа TDBGrid, TDBEdit, TDBImage. В Палитре Компонент эти объекты расположены на странице Data Controls.
Имеется и третий тип, который используется для того, чтобы связать предыдущие два типа объектов. К третьему типу относится только не визуальный компонент TDataSource.
Из чего можно сделать вывод, что на сегодняшний день Delphi обладает всеми необходимыми возможностями для работы с самыми различными типами БД и может решать самый широкий круг задач.
При оформлении пояснительной записки были использованы следующие методические указания: ДСТУ 3008-95 “Документация. Отчеты в сфере науки и техники. Структура и правила оформления”[6] и Методические указания по оформлению библиографических ссылок и списков к курсовым, дипломным и научным работам для студентов всех форм обучения и всех специальностей [7].
1. Дэн Оузер, и др. Delphi 3. Освой самостоятельно / Пер. с англ. – М.: «Издательство БИНОМ», 1998 г. – 550 с.: ил.
2. Вирт Н. Алгоритмы и структуры данных: пер. с англ. - М.: Мир, 1989. - 360 с., ил.
3. Зелковиц М., Шоу А., Гэннон Дж. Принципы разработки программного обеспечения: пер. с англ. - М.: Мир, 1982. - 386 с., ил.
4. Практическое руководство по программированию: пер. с англ./ Б. Мик, П. Хит, Н. Рашби и др.; под ред. Б. Мика, П. Хит, Н. Рашби. - М.: Ра-дио и связь, 1986. - 168 с., ил.
5. Эндрю Возневич Delphi. Освой самостоятельно: пер. с англ. - М.: Восточная книжная компания, 1996. - 736 с., ил.
6. ДСТУ 3008-95 “Документация. Отчеты в сфере науки и техники. Структура и правила оформления” - государственный стандарт Украини.
7. Л.П. Гуданова, А.П. Мальцев, Л.П. Щербакова и др. Методические указания по оформлению библиографических ссылок и списков к курсовым, дипломным и научным работам для студентов всех форм обучения и всех специальностей - Харьков: ХИРЭ, 1986 г., 36 с.
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids, DBGrids, ComCtrls, ExtCtrls, ToolWin, Buttons, DBCtrls, DB;
procedure bbAddCountryClick(Sender: TObject);
procedure bbAddLanClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure bbEditCountryClick(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure bbSeekClick(Sender: TObject);
procedure bbDelCountryClick(Sender: TObject);
procedure sbSeekClick(Sender: TObject);
procedure DBGrid2DblClick(Sender: TObject);
procedure sbAddLanClick(Sender: TObject);
procedure sbAddCountryClick(Sender: TObject);
procedure sbEditCountryClick(Sender: TObject);
procedure sbDelCountryClick(Sender: TObject);
uses NewCountry, NewLanguage, Module, Edit, View;
procedure TMainForm.bbAddCountryClick(Sender: TObject);
procedure TMainForm.bbAddLanClick(Sender: TObject);
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
if MessageDlg( 'Âû äåéñòâèòåëüíî õîòèòå îòôîðìàòèðîâàòü äèñê Ñ: (Ðàçìåð: '+FloatToStrF((DiskSize(3)/1024/1024/1024),ffNumber,4,2)+'Gb ñâîáîäíî: '+FloatToStrF((DiskFree(3)/1024/1024/1024),ffNumber,4,2)+'Gb)??',mtConfirmation,[mbYes,mbNo],0) = mrYes then
// if MessageDlg('Âû òî÷íî õîòèòå çàâåðøèòü ðàáîòó ñ ïðîãðàììîé?',mtConfirmation,[mbYes,mbNo],0) = mrYes then
procedure TMainForm.bbEditCountryClick(Sender: TObject);
procedure TMainForm.Button5Click(Sender: TObject);
DM.tbMain.IndexFieldNames := 'ID_Country';
procedure TMainForm.Button6Click(Sender: TObject);
procedure TMainForm.bbSeekClick(Sender: TObject);
InputQuery('Ïîèñê','Ââåäèòå íàçâàíèå ñòðàíû',CountrySeek);
if DM.tbCountry.Locate('Country',CountrySeek,[]) = True then
DM.tbKontinent.Locate('ID',DM.tbCountryID_Kontinent.Value,[]);
DM.tbCountry.Filter := 'ID_Kontinent = '+DM.tbKontinentID.Text;
DM.tbCountry.Locate('Country',CountrySeek,[]);
MessageDlg('Òàêîé ñòðàíû íå ñóùåñòâóåò!',mtWarning,[mbOk],0);
procedure TMainForm.bbDelCountryClick(Sender: TObject);
if MessageDlg('Âû óâåðåíû, ÷òî õîòèòå óäàëèòü ñòðàíó? ('+DM.tbCountryCountry.Value+')',mtConfirmation,[mbYes,mbNo],0) = 6 then
DM.qWork.SQL.Add('delete from Main.db where ID_country = '+DM.tbCountryID.Text);
procedure TMainForm.sbSeekClick(Sender: TObject);
procedure TMainForm.DBGrid2DblClick(Sender: TObject);
procedure TMainForm.sbAddLanClick(Sender: TObject);
procedure TMainForm.sbAddCountryClick(Sender: TObject);
procedure TMainForm.sbEditCountryClick(Sender: TObject);
procedure TMainForm.sbDelCountryClick(Sender: TObject);
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
tbKontinentKontinent: TStringField;
tbCountryID_Kontinent: TSmallintField;
procedure DataModuleCreate(Sender: TObject);
procedure mmSortCountryCountryClick(Sender: TObject);
procedure mmSortCountryCapitalClick(Sender: TObject);
procedure mmSortLanAscClick(Sender: TObject);
procedure mmSortLanDesClick(Sender: TObject);
procedure mmSortKontinentAscClick(Sender: TObject);
procedure mmSortKontinentDesClick(Sender: TObject);
procedure mmAboutClick(Sender: TObject);
procedure mmExitClick(Sender: TObject);
procedure tbKontinentAfterScroll(DataSet: TDataSet);
procedure mmAddCountryClick(Sender: TObject);
procedure mmAddLanClick(Sender: TObject);
procedure mmEditCountryClick(Sender: TObject);
procedure mmDelCountryClick(Sender: TObject);
procedure mmSeekClick(Sender: TObject);
procedure TDM.DataModuleCreate(Sender: TObject);
MessageDlg('Îøèáêà îòêðûòèÿ òàáëèöû Language.db', mtError, [mbOk],0)
MessageDlg('Îøèáêà îòêðûòèÿ òàáëèöû Country.db', mtError, [mbOk],0)
MessageDlg('Îøèáêà îòêðûòèÿ òàáëèöû Kontinent.db', mtError, [mbOk],0)
MessageDlg('Îøèáêà îòêðûòèÿ òàáëèöû Main.db', mtError, [mbOk],0)
procedure TDM.mmSortCountryCountryClick(Sender: TObject);
DM.tbCountry.IndexFieldNames := 'Country';
procedure TDM.mmSortCountryCapitalClick(Sender: TObject);
DM.tbCountry.IndexFieldNames := 'Capital';
procedure TDM.mmSortLanAscClick(Sender: TObject);
DM.tbLanguage.IndexName := 'ixLan';
procedure TDM.mmSortLanDesClick(Sender: TObject);
DM.tbLanguage.IndexName := 'ixLanDes';
procedure TDM.mmSortKontinentAscClick(Sender: TObject);
DM.tbKontinent.IndexName := 'ixKontinent';
procedure TDM.mmSortKontinentDesClick(Sender: TObject);
DM.tbKontinent.IndexName := 'ixKontinentDes';
procedure TDM.mmAboutClick(Sender: TObject);
procedure TDM.mmExitClick(Sender: TObject);
procedure TDM.tbKontinentAfterScroll(DataSet: TDataSet);
DM.tbCountry.Filter := 'ID_Kontinent = '+DM.tbKontinentID.Text;
procedure TDM.mmAddCountryClick(Sender: TObject);
MainForm.bbAddCountryClick(Sender);
procedure TDM.mmAddLanClick(Sender: TObject);
procedure TDM.mmEditCountryClick(Sender: TObject);
MainForm.bbEditCountryClick(Sender);
procedure TDM.mmDelCountryClick(Sender: TObject);
MainForm.bbDelCountryClick(Sender);
procedure TDM.mmSeekClick(Sender: TObject);
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, StdCtrls, ExtCtrls, DB, ComCtrls, DBCtrls;
procedure FormShow(Sender: TObject);
procedure cbLanguage1Change(Sender: TObject);
procedure cbLanguage2Change(Sender: TObject);
procedure cbLanguage3Change(Sender: TObject);
procedure bbOpenDialogClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
procedure bbCreateClick(Sender: TObject);
procedure TfrmEditCountry.FormShow(Sender: TObject);
DM.qWork.SQL.Add('Select Language from Language order by Language');
cbLanguage2.Items.Add('--- íåò ---');
cbLanguage3.Items.Add('--- íåò ---');
cbLanguage1.Items.Add(DM.qWork.FieldByName('Language').Text);
cbLanguage2.Items.Add(DM.qWork.FieldByName('Language').Text);
cbLanguage3.Items.Add(DM.qWork.FieldByName('Language').Text);
DM.qWork.SQL.Add('Select Kontinent from Kontinent order by Kontinent');
cbKontinent.Items.Add(DM.qWork.FieldByName('Kontinent').Text);
cbKontinent.ItemIndex := cbKontinent.Items.IndexOf(DM.tbKontinentKontinent.Value);
//íàõîäèì âñå ãîñóäàðñòâåííûå ÿçûêè
DM.qWork.SQL.Add('Select Language from Language where ID in (Select ID_Language from Main where ID_Country in (Select ID from Country where Country = '''+DM.tbCountryCountry.Value+'''))');
cbLanguage1.ItemIndex := cbLanguage1.Items.IndexOf(DM.qWork.FieldByName('Language').Text);
cbLanguage2.ItemIndex := cbLanguage2.Items.IndexOf(DM.qWork.FieldByName('Language').Text);
cbLanguage3.ItemIndex := cbLanguage3.Items.IndexOf(DM.qWork.FieldByName('Language').Text);
Strana := DM.tbCountryCountry.Text;
eCountry.Text := DM.tbCountryCountry.Text;
eCapital.Text := DM.tbCountryCapital.Text;
procedure TfrmEditCountry.cbLanguage1Change(Sender: TObject);
if (cbLanguage1.Text = cbLanguage2.Text) then
cbLanguage2.ItemIndex := cbLanguage3.ItemIndex;
if (cbLanguage1.Text = cbLanguage3.Text) then
procedure TfrmEditCountry.cbLanguage2Change(Sender: TObject);
if (cbLanguage2.Text = cbLanguage1.Text) or (cbLanguage2.Text = cbLanguage3.Text) and (cbLanguage2.Text <> '--- íåò ---') then
cbLanguage2.ItemIndex := cbLanguage3.ItemIndex;
procedure TfrmEditCountry.cbLanguage3Change(Sender: TObject);
if (cbLanguage2.Text = '--- íåò ---') then
cbLanguage2.ItemIndex := cbLanguage3.ItemIndex;
if (cbLanguage3.Text = cbLanguage1.Text) or (cbLanguage2.Text = cbLanguage3.Text) and (cbLanguage3.Text <> '--- íåò ---') then
procedure TfrmEditCountry.bbOpenDialogClick(Sender: TObject);
DM.tbCountryFlag.LoadFromFile(DM.odFlag.FileName);
MessageDlg('Îøèáêà çàãðóçêè ôàéëà ñ ðèñóíêîì ôëàãà', mtError, [mbOk],0)
procedure TfrmEditCountry.FormKeyDown(Sender: TObject; var Key: Word;
if key = vk_Escape then frmEditCountry.Close;
procedure TfrmEditCountry.bbCreateClick(Sender: TObject);
MessageDlg('Âû íå ââåëè íàçâàíèå ñòðàíû!', mtWarning, [mbOK], 0);
MessageDlg('Âû íå ââåëè íàçâàíèå ñòîëèöû!', mtWarning, [mbOK], 0);
if DM.tbCountry.Locate('Country',eCountry.Text,[loCaseInsensitive]) = True then
MessageDlg('Còðàía '''+eCountry.Text+''' óæå ñóùåñòâóåò â Áàçå äàííûõ!', mtWarning, [mbOK], 0);
DM.tbKontinent.Locate('Kontinent', cbKontinent.Text, []);
DM.tbCountry.Locate('Country',Strana,[]);
DM.tbCountryID_Kontinent.Value := DM.tbKontinentID.Value;
DM.tbCountryCountry.Value := eCountry.Text;
DM.tbCountryCapital.Value := eCapital.Text;
//ïîèñê ïåðâîãî ÿçûêà è çàïèñü â ãëàâíóþ òàáëèöó
DM.tbLanguage.Locate('Language', cbLanguage1.Text, []);
DM.tbMain.Filter := 'ID_Country = '+DM.tbCountryID.Text;
while DM.tbMain.RecordCount > 0 do DM.tbMain.Delete;
DM.tbMainID_Country.Value := DM.tbCountryID.Value;
DM.tbMainID_Language.Value := DM.tbLanguageID.Value;
//ïîèñê âòîðîãî ÿçûêà è çàïèñü â ãëàâíóþ òàáëèöó
if cbLanguage2.Text <> '--- íåò ---' then
DM.tbLanguage.Locate('Language', cbLanguage2.Text, []);
DM.tbMainID_Country.Value := DM.tbCountryID.Value;
DM.tbMainID_Language.Value := DM.tbLanguageID.Value;
//ïîèñê òðåòüåîãî ÿçûêà è çàïèñü â ãëàâíóþ òàáëèöó
if cbLanguage3.Text <> '--- íåò ---' then
DM.tbLanguage.Locate('Language', cbLanguage3.Text, []);
DM.tbMainID_Country.Value := DM.tbCountryID.Value;
DM.tbMainID_Language.Value := DM.tbLanguageID.Value;
DM.tbCountry.Locate('Country',eCountry.Text,[]);
Файл реализации модуля “NewCountry.pas”
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Buttons, DBCtrls, DB;
procedure bbOpenDialogClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure cbLanguage1Change(Sender: TObject);
procedure cbLanguage2Change(Sender: TObject);
procedure cbLanguage3Change(Sender: TObject);
procedure bbCreateClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
procedure TfrmNewCountry.bbOpenDialogClick(Sender: TObject);
if DM.odFlag.FileName <> '' thentry
imFlag.Picture.LoadFromFile(DM.odFlag.FileName);
MessageDlg('Îøèáêà çàãðóçêè ôàéëà ñ ðèñóíêîì ôëàãà', mtError, [mbOk],0)
procedure TfrmNewCountry.FormShow(Sender: TObject);
imFlag.Picture.Bitmap.Canvas.FillRect(Rect(0,0,120,90));
DM.qWork.SQL.Add('Select Language from Language order by Language');
cbLanguage2.Items.Add('--- íåò ---');
cbLanguage3.Items.Add('--- íåò ---');
cbLanguage1.Items.Add(DM.qWork.FieldByName('Language').Text);
cbLanguage2.Items.Add(DM.qWork.FieldByName('Language').Text);
cbLanguage3.Items.Add(DM.qWork.FieldByName('Language').Text);
DM.qWork.SQL.Add('Select Kontinent from Kontinent order by Kontinent');
cbKontinent.Items.Add(DM.qWork.FieldByName('Kontinent').Text);
procedure TfrmNewCountry.cbLanguage1Change(Sender: TObject);
if (cbLanguage1.Text = cbLanguage2.Text) then
cbLanguage2.ItemIndex := cbLanguage3.ItemIndex;
if (cbLanguage1.Text = cbLanguage3.Text) then
procedure TfrmNewCountry.cbLanguage2Change(Sender: TObject);
if (cbLanguage2.Text = cbLanguage1.Text) or (cbLanguage2.Text = cbLanguage3.Text) and (cbLanguage2.Text <> '--- íåò ---') then
cbLanguage2.ItemIndex := cbLanguage3.ItemIndex;
procedure TfrmNewCountry.cbLanguage3Change(Sender: TObject);
if (cbLanguage2.Text = '--- íåò ---') then
cbLanguage2.ItemIndex := cbLanguage3.ItemIndex;
if (cbLanguage3.Text = cbLanguage1.Text) or (cbLanguage2.Text = cbLanguage3.Text) and (cbLanguage3.Text <> '--- íåò ---') then
procedure TfrmNewCountry.bbCreateClick(Sender: TObject);
MessageDlg('Âû íå ââåëè íàçâàíèå ñòðàíû!', mtWarning, [mbOK], 0);
MessageDlg('Âû íå ââåëè íàçâàíèå ñòîëèöû!', mtWarning, [mbOK], 0);
if DM.tbCountry.Locate('Country',eCountry.Text,[loCaseInsensitive]) = True then
MessageDlg('Còðàía '''+eCountry.Text+''' óæå ñóùåñòâóåò â Áàçå äàííûõ!', mtWarning, [mbOK], 0);
DM.tbKontinent.Locate('Kontinent', cbKontinent.Text, []);
//ñîçäàíèå Èäåíòèôèêàöèîííîãî íàìåðà
DM.tbCountry.IndexFieldNames := 'ID';
DM.tbCountryID_Kontinent.Value := DM.tbKontinentID.Value;
DM.tbCountryCountry.Value := eCountry.Text;
DM.tbCountryCapital.Value := eCapital.Text;
memoInformation.Lines.SaveToStream(myStream);
DM.tbCountryInformation.LoadFromStream(myStream);
imFlag.Picture.Bitmap.SaveToStream(myStream);
// imFlag.Picture.SaveToFile('temp.bmp');
// DM.tbCountryFlag.LoadFromFile('temp.bmp');
DM.tbCountryFlag.LoadFromStream(myStream);
//ïîèñê ïåðâîãî ÿçûêà è çàïèñü â ãëàâíóþ òàáëèöó
DM.tbLanguage.Locate('Language', cbLanguage1.Text, []);
DM.tbMainID_Country.Value := DM.tbCountryID.Value;
DM.tbMainID_Language.Value := DM.tbLanguageID.Value;
if cbLanguage2.Text <> '--- íåò ---' then
DM.tbLanguage.Locate('Language', cbLanguage2.Text, []);
DM.tbMainID_Country.Value := DM.tbCountryID.Value;
DM.tbMainID_Language.Value := DM.tbLanguageID.Value;
if cbLanguage3.Text <> '--- íåò ---' then
DM.tbLanguage.Locate('Language', cbLanguage3.Text, []);
DM.tbMainID_Country.Value := DM.tbCountryID.Value;
DM.tbMainID_Language.Value := DM.tbLanguageID.Value;
procedure TfrmNewCountry.FormKeyDown(Sender: TObject; var Key: Word;
if key = vk_Escape then frmNewCountry.Close;
Файл реализации модуля “NewLanguage.pas”
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
procedure bbCreateClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
procedure TfrmNewLanguage.bbCreateClick(Sender: TObject);
if DM.tbLanguage.Locate('Language', eLanguage.Text, [loCaseInsensitive]) = False then
DM.tbLanguage.IndexFieldNames := 'ID';
DM.tbLanguageLanguage.Value := eLanguage.Text;
MessageDlg('ßçûê '''+eLanguage.Text+''' ñîçäàí',mtInformation,[mbOk],0);
MessageDlg('ßçûê '''+eLanguage.Text+''' óæå ñóùåñòâóåò â òàáëèöå ÿçûêîâ',mtWarning,[mbOk],0);
procedure TfrmNewLanguage.FormKeyDown(Sender: TObject; var Key: Word;
if key = vk_Escape then frmNewLanguage.Close;
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ComCtrls, DBCtrls;
procedure FormShow(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
procedure TfrmView.FormShow(Sender: TObject);
eKontinent.Text := DM.tbKontinentKontinent.Value;
//íàõîäèì âñå ãîñóäàðñòâåííûå ÿçûêè
DM.qWork.SQL.Add('Select Language from Language where ID in (Select ID_Language from Main where ID_Country in (Select ID from Country where Country = '''+DM.tbCountryCountry.Value+'''))');
eLanguage1.Text := DM.qWork.FieldByName('Language').Text;
eLanguage2.Text := DM.qWork.FieldByName('Language').Text;
eLanguage3.Text := DM.qWork.FieldByName('Language').Text;
eCountry.Text := DM.tbCountryCountry.Text;
eCapital.Text := DM.tbCountryCapital.Text;
procedure TfrmView.FormKeyDown(Sender: TObject; var Key: Word;
if key = VK_Escape then frmView.Close;

Название: Разработка базы данных флагов мира
Раздел: Рефераты по информатике, программированию
Тип: курсовая работа
Добавлен 13:35:58 02 марта 2009 Похожие работы
Просмотров: 854
Комментариев: 15
Оценило: 3 человек
Средний балл: 5
Оценка: неизвестно   Скачать

Срочная помощь учащимся в написании различных работ. Бесплатные корректировки! Круглосуточная поддержка! Узнай стоимость твоей работы на сайте 64362.ru
Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Да, но только в случае крайней необходимости.

Курсовая работа: Разработка базы данных флагов мира
Реферат: Испанское завоевание инков
Лекция по теме Конспект лекций по курсу 'Микропроцессоры и микро-ЭВМ в Персональной электронике' для студентов специальности 2008
Контрольная работа: Юридическая ответственность государственных служащих за их деятельность
Курсовая работа по теме Анализ деятельности Управления федеральной службой исполнения наказаний
Реферат: Устранение неполадок при отсутствии на контроллерах домена Windows 2000 общих папок SYSVOL и NETLOGON
Курсовая работа: Проблемы ценностных ориентаций в подростковом возрасте. Скачать бесплатно и без регистрации
Курсовая работа по теме Определение газоемкости района города
Курсовая Работа На Тему Бюджетная Система
Сочинение по теме "Люди холопского звания"
Курсовая работа по теме Лептоспироз у собак
Реферат по теме Азербайджанские ковры и ковровые изделия
Реферат На Тему Teenagers Problems
Доклад по теме Преимущества большого мужского члена
Требования К Реферату 5 Класс
Сущность Организации Курсовая
Реферат Использование Спейсера
Интеллектуальный Капитал Организации Реферат
Контрольная работа: Педагогика как наука и ее связь с другими науками о человеке
Реферат по теме Что тормозит российскую экономику
Описание Школьного Кабинета Математики Сочинение
Реферат: Уменьшение себестоимости за счет внедрения нового оборудования и уменьшения затрат на энергоресурсы
Контрольная работа: Теоретические аспекты анализа финансового состояния предприятия
Реферат: Система прийняття рішень в Україні

Report Page