- Программа Для Рисования
- Программа Для Просмотра Фотографий
- Программа Для Восстановления Удаленных Файлов
Размещено на Размещено на Пояснительная записка к курсовой работе АИС для учета работы гаражного кооператива Введение Целью курсовой работы является приобретение практических навыков проектирования и разработки приложений баз данных, программирования на Delphi; закрепление знаний, полученных в ходе изучения дисциплины «Организация баз данных и знаний». В данной работе рассмотрено создание АИС для учета работы гаражного кооператива.
Мой гараж - бесплатная программа, с помощью которой пользователь может вести картотеку автомобилей, регистрировать их пробег, осуществлять учет затрат на каждый автомобиль, создавать списки событий. Мой гараж - бесплатная программа, с помощью которой пользователь может вести картотеку автомобилей, регистрировать их пробег, осуществлять учет затрат на каждый автомобиль, создавать списки событий. (полное описание.) Скачать Мой гараж. Но для гаражных кооперативов. Гаражный кооператив переходит в статус общей долевой.
АИС позволяет хранить и анализировать данные с возможностью их получения пользователем в любой момент времени и, благодаря обработке этих данных, принять необходимое решение. Разработанный программный продукт дает пользователю возможность очень быстро изменить или получить необходимую ему информацию. Таким образом, растет скорость принятия решений и возрастает эффективность работы в заданной предметной области. Также есть возможность получения результатов выполнения более сложных запросов, благодаря которым пользователь имеет возможность принимать административные решения на предприятии. Для выполнения курсовой работы выбран язык Delphi, так как он обеспечивает поддержку различных SQL-серверов и выполнение различных SQL-запросов на локальном компьютере.
Delphi объединяет в себе удобство визуальных методов разработки, производительность оптимизирующего компилятора и мощность, заложенную в архитектуре клиент / сервер. Delphi позволяет многократно использовать однажды созданный код, уменьшая время, затраченное на разработку. Это мощный язык программирования, включающий обработку ошибочных ситуаций, позволяющих повысить надежность программ. Delphi содержит Borland Data Base Engine - система, поддерживающая различные форматы файлов данных и диалекты языка SQL большинства производителей с помощью обычных драйверов и ODBC драйверов. Новые и улучшенные способы доступа к данным, увеличение вероятности повторного использования кода, благодаря наследованию визуальных форм и другие возможности этого инструмента, среди которых особенно выделяются кэширование обновлений, фильтры, фоновое выполнение запросов и компоненты построения отчётов. Таблицы базы данных были выполнены в Paradox 7.0.
Анализ предметной области 1.1 Описание предметной области программный база данный пользователь Предметная область (ПО) курсовой работы - учет работы гаражного кооператива. Основными задачами учета работы гаражного кооператива являются: - хранение информации обо всех гаражах; - регистрация членов кооператива; - учет членских взносов; - создание отчета о собственниках гаражей; - создание отчета о гаражах кооператива. В гаражном кооперативе назначен председатель, который ведет учет членов кооператива, уплаты членских взносов.
Председатель кооператива следит за своевременной уплатой взносов, и при наличии долга сообщает членам кооператива о необходимости оплаты. При необходимости председатель гаражного кооператива может предоставить членам кооператива информацию о собственниках указанного гаража, а также об оплате взносов по гаражу за весь период. Глоссарий предметной области: Гаражный кооператив - это разновидность потребительского кооператива, созданный с целью объединения граждан для вложения в строительство гаражного общества паевых взносов.
Гараж - это здание, предназначенное для хранения, паркования, технического обслуживания автотранспортных средств. Член кооператива - человек, который сделал вступительный взнос в размерах, определенных уставом кооператива, придерживается устава и пользуется правом голоса в кооперативе. Председатель кооператива - руководитель гаражного кооператива, избираемый общим собранием из числа членов кооператива. Членский взнос - денежный взнос, ежегодно уплачиваемый членом кооператива для обеспечения текущей деятельности кооперативного объединения.
1.2 Техническое задание на разработку программного продукта Введение Программный продукт (ПП) представляет собой реализацию АИС для учета работы гаражного кооператива. Основание для разработки Разработка выполняется на основании индивидуального задания на курсовой проект по дисциплине «Организация баз данных и знаний», выданного руководителем курсового проекта Сагайда П.И., преподавателем кафедры компьютерных информационных технологий Донбасской государственной машиностроительной академии. Условное обозначение разработки - Жужик. Назначение разработки Разрабатываемая система предназначена для автоматизации труда председателя гаражного кооператива: автоматизация составления отчетов; добавление и редактирование данных; поиск и анализ информации. Требования к программному продукту Требования к функциональным характеристикам ПП должен выполнять следующие функции: - хранение информации о членах кооператива, гаражах кооператива, и сумме ежегодных членских взносов; - внесение в базу данных новой информации и редактирование существующей; - создание отчетов о гаражах кооператива, а также о собственниках гаражей; - предоставление информации о гараже, собственниках гаража, долге, оплате по гаражу за весь период для выбранного гаража. Требования к надежности - ПП должен устойчиво функционировать и не приводить к сбоям операционной системы; - ПП должен обеспечивать обработку ошибочных действий пользователя с выдачей соответствующих сообщений. Условия эксплуатации Условия эксплуатации ПП определяются СанПиН 2.2.2 545-9 6 «Гигиенические требования к видеодисплейным терминалам, персональным вычислительным машинам и организации работы».
Требования к составу и параметрам технических средств Требования к параметрам технических средств, необходимых для эксплуатации ПП, определяются только требованиями к функционированию информационной платформы Delphi. Требования к информационной и программной совместимости ПП выполняется под Windows. Разработан в среде Delphi 7. Требования к программной документации Программная документация должна включать: записка к курсовой работе; исходные коды ПП с комментариями; руководство пользователя. Таблица 1.1 - Стадии и этапы разработки № Этап Содержание этапа 1 Техническое задание Анализ и формализация требования к ПП, планирование работ.
2 Диаграммы Анализ ПО, реализация диаграмм прецедентов и классов. 3 Технический проект Разработка первоначальной версии ПП с основной функциональностью. 4 Рабочий проект Корректировка и доработка программного обеспечения; разработка документации. 5 Защита курсовой работы Защита проекта «АИС для учета работы гаражного кооператива» 2. Проектирование структуры базы данных 2.1 Построение ER -д иаграмм В ходе анализа предметной области были выделены основные сущности: «Член кооператива», «Гараж», «Членский взнос», «Ежегодный взнос» а также связи: «Принадлежит», «Оплата».
Всего 4 сущности и 2 двухсторонние связи. Сущность «Ежегодный взнос» является справочной и в связях не учавствует. Полученная ER-диаграмма представлена на рисунке 2.1, а диаграмма ER-экземпляров, представлена на рисунке 2.2: Размещено на Размещено на Рисунок 2.1 - ER-диаграмма Размещено на Размещено на Рисунок 2.2 - Диаграмма ER - экземпляров Получим предварительный набор отношений из ER-диаграммы.
Они нужны для создания структуры таблиц БД, а также определение количества таблиц, которые нужно хранить в базе данных. 1) Член кооператива - Гараж R1 ( A, B, C, D); R2 ( I, J, K); R3 ( A, I, F, G, H); 2) Гараж - Членский взнос R4 ( I, J, K); R5 ( L, M, N, O, I); 3) Гараж - Ежегодный взнос R6 ( I, J, K); R7 (P). Так как R2, R4 и R6 - одна и та же сущность, получим следующий набор отношений: R=(R1, R2, R3, R5, R7). 2.2 Построение д иаграмм ы функциональных зависимостей На рисунке 2.3 изображена диаграмма функциональных зависимостей (ФЗ), которая обеспечивает нахождение таблиц в НФБК.
Если сущности имеют связь, появляющуюся динамично, то на диаграмме ФЗ такие сущности имеют общую область. Если между элементами ФЗ имеется функциональная зависимость, они соединяются стрелкой. По правилам вывода определим, что в нашей ФЗ не существует избыточных зависимостей, т.е. Мы имеем минимальное покрытие для диаграммы ФЗ. Полученная ФЗ обеспечивает нахождение таблиц в НФБК: значения всех атрибутов - атомарны; каждый непервичный атрибут функционально полно и нетранзистивно зависит от первичного ключа; каждый детерминант является возможным ключом.
Следовательно, универсальное отношение находится в НФБК и в декомпозиции не нуждается. 2.3 Окончательный набор таблиц и описание полей В результате процесса проектирования с помощью ER-диаграмм и концепции ФЗ были получены отношения, которые соответствуют набору из пяти таблиц. Окончательный набор таблиц и описание полей представлены в таблицах 2.1-2.5. «.» - отмечены ключи. Таблица 2.1 - Описание таблицы Garages Поле Тип Назначение Garagenumber. Short Номер гаража Garagetype Alpha(10) Тип гаража Garagespace Short Площадь гаража Таблица 2.2 - Описание таблицы Members Поле Тип Назначение Idnumber.
Alpha(10) Ид. Номер Name Alpha(40) Ф.И.О. Passportnumber Alpha(8) Номер паспорта Phonenumber Alpha(13) Телефонный номер Таблица 2.3 - Описание таблицы Membership Поле Тип Назначение Contractnumber. Alpha(5) Номер контракта Garagenumber Short Номер гаража Idnumber Alpha(10) Ид. Номер Ownbegin Date Начало владения Ownend Date Конец владениия Таблица 2.4 - Описание таблицы Membershipfee Поле Тип Назначение Paynumber.
Autoinkrement Номер квитанции Garagenumber Short Номер гаража Date Date Дата оплаты Year Alpha(4) Год взноса Payment Number Сумма Таблица 2.5 - Описание таблицы Annualfee Поле Тип Назначение Garagetype Alpha(10) Тип гаража Suminyear Number Сумма в год 3. Разработка и реализация АИС 3.1 Построение диаграммы прецедентов использования и диаграммы классов Цели, которые должны быть достигнуты в результате автоматизации данной предметной области и задачи, которые должны быть решены для достижения цели изображены в таблице 3.1. Таблица 3.1 - Цели и задачи автоматизации ПО Наименование цели Перечень задач для достижения цели 1.
Хранение данных о гаражах, членах кооператива, о том кому принадлежат гаражи и о членских взносах. Создание отчетов о работе гаражного кооператива.
Предоставление информации о гараже, собственниках гаража, долге, оплате по гаражу за весь период для выбранного гаража. просмотр данных; - модификация данных. создание отчета о гаражах кооператива; - создание отчета о членах кооператива. выполнение запросов для выбранного гаража.
Диаграмма прецедентов использования для заданной предметной области изображена на рисунке 3.1. Размещено на Размещено на Рисунок 3.1 - Диаграмма прецедентов использования Основной сценарий использования «Модификация информации». Краткое описание. Этот вариант использования позволяет студенту председателю кооператива модифицировать данные в таблицах базы данных. Председатель кооператива может удалить, добавить либо же изменить данные в таблицах.
Система каталога курсов предоставляет список всех курсов, предлагаемых в текущем семестре. Основное действующее лицо этого варианта использования - председатель кооператива. Поток событий. Вариант использования начинается, когда председатель кооператива выбирает пункт «просмотр (редактирование) таблиц» из главного окна программы, предварительно выбрав необходимую таблицу. Основной поток.
Добавить запись: - Председатель кооператива заполняет необходимые поля под надписью «Изменить (добавить) запись». Некоторые поля заполняются вручную, некоторые выбираются из выпадающего списка.
Председатель кооператива нажимает кнопку «Добавить запись». Система проверяет, заполнены ли все необходимые поля, и соответствует ли формат введенной информации, формату данных в таблице. В случае несоответствия выводит сообщение об ошибке. В случае соответствия система добавляет запись в таблицу базы данных; обновляет просматриваемую таблицу в окне редактирования таблицы и выводит сообщение о добавлении записи. Альтернативные потоки. 1) Изменить запись: - Председатель кооператива заполняет необходимые поля под надписью «Изменить (добавить) запись». Некоторые поля заполняются вручную, некоторые выбираются из выпадающего списка.
Председатель кооператива нажимает кнопку «Изменить запись». Система проверяет, заполнены ли все необходимые поля, существует ли изменяемая запись и соответствует ли формат введенной информации, формату данных в таблице. В случае несоответствия выводит сообщение об ошибке. В случае соответствия система изменяет запись в таблице базы данных; обновляет просматриваемую таблицу в окне редактирования таблицы и выводит сообщение об изменении записи. 2) Удалить запись: - Председатель кооператива заполняет поле под надписью «Удалить запись».
Председатель кооператива нажимает кнопку «Удалить запись». Система проверяет, заполнено ли необходимое поле, существует ли удаляемая запись и соответствует ли формат введенной информации, формату данных в таблице. В случае несоответствия выводит сообщение об ошибке. В случае соответствия система удаляет запись в таблице базы данных; обновляет просматриваемую таблицу в окне редактирования таблицы и выводит сообщение об удалении записи.
3) Выполнить сортировку данных в таблице: В любой момент председатель кооператива может выбрать, по какому полю необходимо сортировать выводимую таблицу. Для этого председатель кооператива выбирает один из пунктов в графе «Сортировать по:». Система меняет вторичный индекс таблицы на выбранный и обновляет просматриваемую таблицу.
Диаграмма классов ПО. Создадим классы-сущности Garage (Гараж), Member (Член кооператива) и Membership Fee (Членский взнос), Annual Fee (Ежегодный взнос). Добавим отношения между классами: - класс Garage и Member - отношение ассоциации, поскольку данные два класса просто связаны друг с другом и никакие другие типы связей здесь применить нельзя.
Один гараж в разное время может принадлежать одному или нескольким членам кооператива, члену кооператива может принадлежать один или несколько гаражей, поэтому кратность связи со стороны классов Гараж и Член кооператива - 1.; - класс Garage и Membership Fee - отношение ассоциации, поскольку данные два класса просто связаны друг с другом и никакие другие типы связей здесь применить нельзя. Один гараж может оплачиваться несколькими взносами или не оплачиваться вообще, каждый членский взнос поступает только от одного гаража, поэтому кратность связи со стороны класса Garage - 1, со стороны Membership Fee - 0.; - класс Garage и Annual Fee - отношение ассоциации, поскольку данные два класса просто связаны друг с другом и никакие другие типы связей здесь применить нельзя. Каждому гаражу назначен только один ежегодный взнос, один ежегодный взнос назначен нескольким гаражам, поэтому кратность связи со стороны класса Garage -., со стороны Annual Fee - 1. Структура классов изображена на рисунке 3.2.
Размещено на Размещено на Рисунок 3.2 - Диаграмма классов 3.2 Создание таблиц с помощью СУБД Для создания таблиц была использована программа DatabaseDesktop. Для возможности выполнения запросов к базе данных, которые предусматривают соединение таблиц, а также просмотра и выбора данных, синхронизации навигации по записям была разработана схема связей между таблицами. 3.3 Описание реализации основных функций приложения БД Структурные и функциональные особенности приложения Разрабатываемая программа состоит из нескольких модулей, структура которых представлена на рисунке 3.3.
Размещено на Размещено на Рисунок 3.3 - Связи модулей приложения Работа приложения ведётся в соответствии со стрелками на рисунке, начиная с главной формы. Unit1 - содержит функционал для работы с таблицами (сортировку по необходимым полям, добавление, редактирование, удаление записей). Unit2-5 - содержит функционал для работы с таблицами.
Unit6 - содержит функционал для выполнения запросов к базе данных (долг по гаражу, информация о собственнике гаража, оплаты гаража за весь период, информация о гараже) и вывода результата запроса. Unit7 - содержит функционал для предоставления отчетов (информация о гаражах, о собственниках гаражей).
Unit8-9 - содержит отчеты (информация о гаражах, о собственниках гаражей). Unit10 - содержит функционал восстановления данных, выбранных из списка по дате создания. Резервное копирование выполняется из главного меню программы. Unit11 - содержит информацию о программе. Для создания таблиц была использована программа DatabaseDesktop. Подключение полученных таблиц произведено путем использования компонентов.
Таблица 3.2 - Используемые компоненты ТТаble Для связи с физической таблицей данных TDBGrid Для визуализации данных в таблице TDataSource Для связи видимых и невидимых компонентов БД Листинг основных функций программы приведен в приложении А. Сортировка, фильтрация, и поиск записей Сортировка записей производится путем подключения различных индексов, созданных при создании таблиц в DatabaseDesktop. Пример сортировки в таблице «Члены кооператива» представлен ниже: Рисунок 3.4 - Сортировка данных в таблице «Члены кооператива» procedure TForm3. RadioButton1Click (Sender: TObject); begin Table1.
IndexFieldNames:='Idnumber'; end; procedure TForm3. RadioButton2Click (Sender: TObject); begin Table1. IndexFieldNames:='Name'; end; procedure TForm3.
RadioButton3Click (Sender: TObject); begin Table1. IndexFieldNames:='Passportnumber'; end; Фильтрация в таблице «Членские взносы» может производиться по двум критериям - номеру гаража и учетному году. В других таблицах фильтрация производится аналогично. Пример фильтрации в таблице «Членские взносы» представлен ниже: Рисунок 3.5 - Фильтрация данных в таблице «Членские взносы» procedure TForm5. Button2Click (Sender: TObject); var filtr, add: string; begin Table1. Filtered:=False; filtr:='; if Length (Edit5.
Text) 0 then filtr:= 'Garagenumber ='+ Edit5. Город волгоград. Text; if length (Edit6.
Text) 0 then begin if Length(filtr) 0 then add:= ' and ' else add:='; filtr:=filtr + add + 'Paymentyear ='+ Edit6. Text; end; if length(filtr) 0 then begin Table1. Filter:= filtr; Table1.filtered:=True; end else MessageDlg ('Все поля пусты!' , mtInformation, mbOk, 0); end; В каждой таблице реализован поиск записей при помощи функции Locate и возврат значений из найденной записи при помощи функции Lookup. Пример поиска в таблице «Гаражи» представлен ниже: Рисунок 3.6 - Поиск записи в таблице «Гаражи» procedure TForm2.
Button1Click (Sender: TObject); var Res1, Res2: Variant; begin Table1. Locate ('Garagenumber', Edit4. Text, loCaseInsensitive, loPartialKey); if not Table1. Locate ('Garagenumber', Edit4.
Text, loCaseInsensitive, loPartialKey) then MessageDlg ('Запись не найдена!' , mtInformation, mbOk, 0) else begin Res1:=Table1. Lookup ('Garagenumber', Edit4. Text, 'Garagetype'); Res2:=Table1. Lookup ('Garagenumber', Edit4. Text, 'Garagespace'); MessageDlg ('тип гаража: '+String(Res1)+#13+'площадь гаража: '+String(Res2), mtInformation, mbOk, 0); end; end; Запросы к базе данных, реализованные в приложении Запросы выполняются при помощи компонента TQuery.
Результаты запроса выводятся в компоненте TDBGrid, посредством TDataSource. В программе реализованы следующие запросы к системе баз данных: 1) Содержит информацию о долге заданного гаража. SELECT Garagenumber as Номергаража, ((2013-2009).(SELECT a. Suminyear FROM Annualfee a, Garages b WHERE a. Garagetype AND b.
Garagenumber=4) - (SELECT sum(Payment) FROM Membershipfee WHERE Garagenumber=4)) as Долг FROM Garages WHERE Garagenumber=4 Результат запроса представлен на рисунке 3.7. Рисунок 3.7 - Результат запроса №1 2) содержит информацию о собственнике заданного гаража. Contractdate as Датаконтракта, b.
Idnumber as Идномер, b. Name as Ф.И.О., b. Passportnumber as Номерпаспорта, b. Phonenumber as Номертелефона FROM Membership a, Members b WHERE a. Idnumber AND a. Garagenumber=4 Результат запроса представлен на рисунке 3.8.
Рисунок 3.8 - Результат запроса №2 3) содержит информацию о членских взносах за заданный гараж за весь период существования гаражного кооператива; SELECT Paymentdate as Датаоплаты, Paymentyear as Год, Payment as Сумма FROM Membershipfee WHERE Garagenumber=4 Результат запроса представлен на рисунке 3.9. Рисунок 3.9 - Результат запроса №3 4) содержит информацию о заданном гараже, включая Ф.И.О. Текущего собственника. Garagetype as Типгаража, a. Garagespace as Площадьгаража, c. Name as Собственник FROM Garages a, Membership b, Members c WHERE c.
Idnumber AND a. Garagenumber AND a. Garagenumber=4 AND b. Contractdate=(SELECT MAX (Contractdate) FROM Membership WHERE Garagenumber=a.
Garagenumber) Отчеты о содержимом базы данных, реализованные в приложении В программе реализованы отчёты по содержимому системы баз данных. Первый отчет содержит информацию о гаражах кооператива, а второй содержит информацию о текущих собственниках всех гаражей. Рисунок 3.10 - Отчет о гаражах кооператива Рисунок 3.11 - Отчёт о собственниках гаражей Политика безопасности В разработанном приложении существует возможность резервного сохранения данных (происходит создание директории с именем текущей даты и копирование туда БД), восстановления (восстановление данных из одной из папок, созданных при резервном сохранении). Контроль ввода в необходимых полях при добавлении и редактировании записей в таблицы базы данных. Руководство пользователя Из главного окна программы пользователь получает доступ к меню программы, из которого можно вызвать резервное копирование и восстановления системы, а также информацию о программе.
При вызове восстановления системы пользователь должен выбрать точку восстановления, соответствующую дате создания резервной копии. На главном окне программы пользователь может выбрать одно из возможных действий: просмотр (редактирование) таблицы, запросы или отчеты. При выборе просмотра (редактирования) таблиц пользователь сначала выбирает таблицу из выпадающего списка, после чего открывается окно редактирования выбранной таблицы. В окне редактирования таблиц доступна фильтрация, поиск и сортировка данных таблицы. Также имеется возможность изменить, добавить и удалить записи из таблицы. При выборе запросов открывается окно «Запросы», в котором необходимо выбрать номер гаража и запрос и нажать кнопку выполнить.
Программа Для Рисования
Результат запроса отобразится в текущем окне. При выборе отчетов пользователь может выбрать один из двух возможных отчетов и осуществить его печать либо предварительный просмотр. Внешний вид форм приведён в приложении Б.
Заключение Данный программный комплекс является реализацией курсовой работы по дисциплине «Организация баз данных и знаний» и предполагает разработку базы данных «Автоматизированная информационная система (АИС) учета работы гаражного кооператива». АИС позволяет вести автоматизированный учет всех гаражей и членов кооператива, а также вести учет оплаты членских взносов. Это позволяет существенно облегчить рутинную работу председателя кооператива, избежать возможности ошибок и повысить эффективность работы гаражного кооператива.
Список используемой литературы 1 Сагайда П.І. Розробка та організація баз даних у системах автоматизації проектування та управління: Навчальний посібник для студентів спеціальності 7.080402.
Краматорськ.: ДДМА, 2003. 2 Четвериков В.Н., Ревунков Г.И., Самохвалов Э.Н. Базы и банки данных: Учеб.
3 Базы данных: Учебник для вузов / Под ред. СПб.: Корона принт, 2000. 4 Хансен Г., Хансен Дж. Базы данных: разработка и управление.
М.: Бином, 1999. 5 Наумов А.Н. Системы управления базами данных и знаний. М.: Финансы и статистика, 1991. 6 Программирование в среде Delphi: Пер.
/ Джефф Дантеманн, Джим Мишел, Дон Тейлор.-К:НИПФ «ДиаСофтЛтд.», 1995.-608. 7 Фаронов В.В., Шумаков П.В. Delphi 5 Руководство разработчика БД - М.: Нолидж, 2000-640.
8 Бобровский С.И. Delphi 7 Учебный курс - СПб.: Питер, 2005 - 736. Хоменко Работа с базами данных в Delphi.-C-П.: «БХВ-Петербург», 2002.-621.
Приложение А Функции приложения 1. Добавление записи в базу данных (на примере таблицы «Гаражи»). Procedure TForm2. ButtonAddClick (Sender: TObject); begin if ((Edit2. Text=') and (Edit3. Text=')) then MessageDlg ('Введите номер и площадь гаража', mtInformation, mbOk, 0) else if Edit2.
Text=' then MessageDlg ('Введите номер гаража', mtInformation, mbOk, 0) else if Edit3. Text=' then MessageDlg ('Введите площадь гаража', mtInformation, mbOk, 0) else begin Query1. Close; Query1.SQL. Clear; Query1.SQL.
Add ('SELECT. FROM Garages WHERE Garagenumber='+Edit2.
Программа Для Просмотра Фотографий
Text); Query1. Open; if Query1. RecordCount0 then MessageDlg ('Запись уже существует, введите корректный номер гаража', mtInformation, mbOk, 0) else begin Query1. Close; Query1.SQL.
Clear; Query1.SQL. Add ('INSERT INTO Garages'); Query1.SQL.
Add ('VALUES('+Edit2. Text+', «'+ComboBox1. Text+', '+Edit3. Text+')'); Query1. ExecSQL; MessageDlg ('Запись добавлена!'
, mtInformation, mbOk, 0); Table1. Refresh; end; end; end; 2.
Редактирование записи в базе данных (на примере таблицы «Гаражи»). Procedure TForm2. ButtonChangeClick (Sender: TObject); begin if ((Edit2. Text=') and (Edit3. Text=')) then MessageDlg ('Введите номер и площадь гаража', mtInformation, mbOk, 0) else if Edit2. Text=' then MessageDlg ('Введите номер гаража', mtInformation, mbOk, 0) else if Edit3.
Text=' then MessageDlg ('Введите площадь гаража', mtInformation, mbOk, 0) else begin Query1. Close; Query1.SQL.
Clear; Query1.SQL. Add ('SELECT. FROM Garages WHERE Garagenumber='+Edit2. Text); Query1. Open; if Query1.
RecordCount=0 then MessageDlg ('Записи не существует, введите корректный номер гаража', mtInformation, mbOk, 0) else begin Query1. Close; Query1.SQL. Clear; Query1.SQL. Add ('UPDATE Garages'); Query1.SQL. Add ('SET Garagetype='+ComboBox1.
Text+', Garagespace='+Edit3. Text); Query1.SQL. Add ('WHERE Garagenumber='+Edit2. Text); Query1. ExecSQL; MessageDlg ('Запись изменена!' , mtInformation, mbOk, 0); Table1.
Refresh; end; end; end; 3. Удаление записи из базы данных (на примере таблицы «Гаражи»). Procedure TForm2. ButtonDeleteClick (Sender: TObject); begin if Edit1. Text=' then MessageDlg ('Введите номер гаража', mtInformation, mbOk, 0) else begin Query1. Close; Query1.SQL.
Clear; Query1.SQL. Add ('SELECT. FROM Garages WHERE Garagenumber='+Edit1.
Text); Query1. Open; if Query1. RecordCount=0 then MessageDlg ('Записи не существует, введите корректный номер гаража', mtInformation, mbOk, 0) else begin Query1. Close; Query1.SQL. Clear; Query1.SQL. Add ('DELETE FROM Garages'); Query1.SQL. Add ('WHERE Garagenumber='+Edit1.
Text); Query1. ExecSQL; MessageDlg ('Запись удалена!' , mtInformation, mbOk, 0); Table1. Refresh; end; end; end; 4. Выполнение SQL-запросов, выбранных пользователем.
Procedure TForm6. Button1Click (Sender: TObject); begin if ComboBox1. Text=' then MessageDlg ('Выберите номер гаража', mtInformation, mbOk, 0) else if RadioButton1. Checked then begin Label3. Caption:='Результат запроса для гаража № '+ComboBox1. Text+':'; Query2. Close; Query2.SQL.
Clear; Query2.SQL. Add ('SELECT ((2013-2009).(SELECT a. Suminyear FROM Annualfee a, Garages b WHERE a. Garagetype AND b. Text+') - (SELECT sum(Payment) FROM Membershipfee WHERE Garagenumber='+ComboBox1. Text+')) as Долг'); Query2.SQL. Add ('FROM Garages'); Query2.SQL.
Add ('WHERE Garagenumber='+ComboBox1. Text); Query2. ExecSQL; Query2. Active:=True; end else if RadioButton2.
Программа Для Восстановления Удаленных Файлов
Checked then begin Label3. Caption:='Результат запроса для гаража № '+ComboBox1. Text+':'; Query2. Close; Query2.SQL. Clear; Query2.SQL. Add ('SELECT a.
Contractdate as Датаконтракта, b. Idnumber as Идномер, b. Name as Ф.И.О., b.
Passportnumber as Номерпаспорта, b. Phonenumber as Номертелефона'); Query2.SQL. Add ('FROM Membership a, Members b'); Query2.SQL. Add ('WHERE a. Idnumber AND a. Text); Query2. ExecSQL; Query2.
Active:=True; end else if RadioButton3. Checked then begin Label3. Caption:='Результат запроса для гаража № '+ComboBox1. Text+':'; Query2.
Close; Query2.SQL. Clear; Query2.SQL. Add ('SELECT Paymentdate as Датаоплаты, Paymentyear as Год, Payment as Сумма'); Query2.SQL. Add ('FROM Membershipfee'); Query2.SQL. Add ('WHERE Garagenumber='+ComboBox1.
Text); Query2. ExecSQL; Query2.
Active:=True; end else if RadioButton4. Checked then begin Label3. Caption:='Результат запроса для гаража № '+ComboBox1. Text+':'; Query2. Close; Query2.SQL.
Clear; Query2.SQL. Add ('SELECT a. Garagetype as Типгаража, a. Garagespace as Площадьгаража, c. Name as Собственник'); Query2.SQL. Add ('FROM Garages a, Membership b, Members c'); Query2.SQL. Add ('WHERE c.
Idnumber AND a. Garagenumber AND a.
Text); Query2.SQL. Contractdate=(SELECT MAX (Contractdate) FROM Membership WHERE Garagenumber=a. Garagenumber)'); Query2. ExecSQL; Query2.
Active:=True; end; end; 5. Создание резервной копии БД.
Procedure TForm1.mniBackUpClick (Sender: TObject); var SR:TSearchRec; Res:integer; begin if not DirectoryExists ('c: DB Garage ') then Exit; Res:=FindFirst ('c: DB Garage '+'.' , faAnyFile, SR); if Res0 then Exit else if DirectoryExists ('c: DB Garagebackup '+DateToStr(Date)+' ') then begin MessageDlg ('Резервное копирование возможно выполнить тоько 1 раз в сутки', mtInformation, mbOk, 0); Exit; end else ForceDirectories ('c: DB Garagebackup '+DateToStr(Date)+' '); repeat if (SR. Name') and (SR. ) then CopyFile (PAnsiChar('c: DB Garage '+SR. Name), PAnsiChar ('c: DB Garagebackup '+DateToStr(Date)+' '+SR. Name), true); until FindNext(SR)0; MessageDlg ('Резервное копирование выполнено', mtInformation, mbOk, 0) end; 6. Восстановление БД.
Procedure TForm10. ButtonRepairClick (Sender: TObject); var SR:TSearchRec; Res:integer; begin if ComboBox1. Text=' then MessageDlg ('Не выбрана дата создания резервной копии', mtInformation, mbOk, 0) else begin Res:=FindFirst ('c: DB Garage '+'.' , faAnyFile, SR); if Res0 then Exit else repeat if (SR.
Name') and (SR. ) then DeleteFile (PAnsiChar('c: DB Garage '+SR. Name)); until FindNext(SR)0; Res:=FindFirst ('c: DB Garagebackup '+ComboBox1. Text+' '+'.'
, faAnyFile, SR); if Res0 then Exit else repeat if (SR. Name') and (SR. ) then CopyFile (PAnsiChar('c: DB Garagebackup '+ComboBox1.
Name), PAnsiChar ('c: DB Garage '+SR. Name), true); until FindNext(SR)0; MessageDlg ('База данных восстановлена', mtInformation, mbOk, 0) end; Приложение Б Экранные формы приложения Рисунок Б1 - Главная форма приложения Рисунок Б2 - Форма редактирования таблицы Рисунок Б3 - Форма запросов Рисунок Б4 - Форма отчетов Размещено на Allbest.ru.