Разработка информационной системы "Компьютерные комплектующие" с использованием клиент-серверной технологии
Реляционные базы данных как часть корпоративных информационных систем, их построение по принципам клиент-серверной технологии. Основные характеристики СУБД Firebird. Проектирование базы данных для информационной системы "Компьютерные комплектующие".
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 28.07.2013 |
Размер файла | 1,9 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Разработка информационной системы "Компьютерные комплектующие" с использованием клиент-серверной технологии
Содержание
- Введение
- 1. Основные характеристики субд Firebird
- 1.1 Доступ к сети
- 1.2 Многоверсионная архитектура
- 1.3 Транзакции
- 1.4 Хранимые процедуры и триггеры
- 1.5 Безопасность сервера
- 2. Проектирование базы данных для информационной системы "Компьютерные комплектующие"
- 2.1 Системный анализ предметной области
- 2.2 Инфологическое моделирование
- 2.3 Даталогическое проектирование
- 2.4 Физическое проектирование
- 2.5 Создание базы данных
- 2.6 Программирование бизнес - логики
- 3. Разработка Windows-приложения
- 4. Разработка Web-приложения
- Заключение
- Список используемой литературы
- Приложения
Введение
Реляционные базы данных, являющиеся частью корпоративных информационных систем, обычно построены по принципам клиент-серверной технологии. Суть этой технологии в том, что программный продукт в качестве логических компонентов имеет сервер и несколько клиентов. Клиент работает непосредственно с пользователем, а на сервере (или множестве серверов) хранится информация. По мере необходимости клиент посылает запросы на сервер и принимает request's (ответы сервера). Принято называть клиентом компонент локальной сети, запрашивающий услуги у некоторого сервера и сервером - компонент локальной сети, оказывающий услуги клиентам.
В первом разделе рассмотрены основные характеристики СУБД FIREBIRD, а именно: доступ к сети, многоверсионная архитектура, транзакции, хранимые процедуры и триггеры, безопасность сервера. Во втором разделе описано проектирование базы данных "Компьютерные комплектующие". В третьем разделе написана разработка WINDOWS - приложения, с помощью которого можно вести базу данных локально. В четвертом разделе описана разработка WEB-приложения, для удаленного ведения базы данных.
Данная курсовая работа была выполнена с использованием языков программирования C++, PHP и SQL, HTML, CSS и PSQL, а так же средства РСУБД Firebird 2. 1, PHP и Borland C++Builder 6. 0.
Целью данной курсовой работы является:
· Создание информационной системы "Компьютерные комплектующие" с применением клиент-серверной технологии;
Поставленная цель подразумевает решение следующих задач:
· Проектирование и разработка базы данных в РСУБД Firebird;
· Проектирование и создание приложения, основанного на клиент-серверной технологии и работающего в операционной системе Windows;
· Проектирование и создание web-приложения.
Курсовая работа написана на ___ листах. Так же на ___ страницах содержатся код программ, вынесенных в приложение. Курсовая работа содержит 28 рисунков, 5 таблиц и 2 листинга.
база клиент серверный информационный
1. Основные характеристики субд Firebird
Firebird - это мощная, компактная реляционная система управления базами данных (РСУБД) с архитектурой клиент-сервер. Она может выполняться на разнообразных серверных и клиентских платформах, включая Windows, Linux и на некоторых других платформах UNIX, включая FreeBSD и МасOS Х. Это РСУБД промышленного применения, чьи возможности имеют высокий уровень соответствия стандартам SQL, при этом она реализует некоторые мощные расширения языка процедурного программирования конкретного производителя. [1]
1.1 Доступ к сети
Сервер Firebird, запущенный на любой платформе, принимает ТСР/IР-подключения клиентов с любой клиентской платформы, которая может выполнять Firebird API.
Клиенты не могут подключиться к серверу Firebird через какую-нибудь файловую систему коллективного доступа (NFS, соединение клиентов Samba, общие ресурсы Windows или сетевой диск и т.д.).
Клиент должен подключаться с указанием абсолютного физического пути. Тем не менее в Firebird 1. 5 и выше средство алиасов баз данных позволяет приложениям выполнять "мягкое подключение" с использованием именованных алиасов, абсолютные пути которых указаны специально для каждого сервера.
К серверу Firebird, запушенному на хосте в Windows с сервисами, можно получить доступ от клиентов Windows с помощью сетевого протокола Named Pipes (именованные каналы).
1.2 Многоверсионная архитектура
Модель изоляции и управления работой множества пользователей, принятая в Firebird, является центральной частью архитектуры; она позволяет сохранять в базе данных более одной версии записи одновременно. Множество версий одной записи может существовать одновременно отсюда термин "многоверсионный". Каждая пользовательская задача имеет свой собственный контекстный вид состояния базы данных и записывает свои версии записей на диск сервера. В этот момент новая версия записи (или удаленная запись) недоступна другим задачам пользователей.
Только самая последняя подтвержденная версия записи является видимой за пределами пользовательской задачи, которая успешно сохранила новую версию, и эта запись продолжает оставаться видимой для других задач. Другие задачи будут в курсе того, что что-то произошло с этой записью, поскольку они будут блокированы от изменения или удаления этой записи, пока новая версия не станет "официальной" после подтверждения изменений.
По причине использования многоверсионной архитектуры (называемой также МGА Multi-generational architecture) для Firebird нет необходимости в двухфазной блокировке, используемой другими СУБД для управления многопользовательской работой. [3]
1.3 Транзакции
Все задачи пользователей в Firebird помещаются внутрь транзакций. Задача начинается с оператора START TRANSACTION и завершается, когда выполненная работа подтверждается (commit) или отменяется (rollback), Задача пользователя может выполнять множество запросов к операциям в одной транзакции, включая операции с более чем одной базой данных.
Работа сохраняется в базе данных в два этапа. На первом этапе изменения сохраняются на диске без изменения состояния базы данных. На втором этапе изменения подтверждаются или отменяются клиентским процессом. В версии 1. 5 и выше клиенты могут отменить часть работы, маркируя этапы с помощью точек сохранения (savepoints) и отменяя изменения до точки сохранения без отмены всей транзакции.
Транзакции в Firebird являются атомарными в том смысле, что вся работа в рамках транзакции будет сохранена или вся отменена. Транзакции можно конфигурировать с использованием трех уровней изоляции и множества стратегий тонкой настройки параллельности выполнения и условий чтения/записи.
1.4 Хранимые процедуры и триггеры
Firebird имеет богатый язык процедурных расширений, PSQL, для написания хранимых процедур и триггеров. Это структурированный язык с поддержкой циклов FOR для множеств, условными переходами, обработкой ошибок и пересылкой событий. После создания код PSQL компилируется и сохраняется в двоичном виде.
Триггеры имеют сильную поддержку с фазами До (Before) и После (After) каждого события манипулирования данными. Для каждой фазы/события может существовать множество триггеров, они могут содержать номера, задающие последовательность выполнения. Firebird 1. 5 и выше поддерживает триггеры Before и After, которые обрабатывают все три события манипулирования данными с условными переходами для каждого события. [5]
1.5 Безопасность сервера
Firebird обеспечивает безопасность доступа пользователей к серверу с помощью идентификатора пользователя и зашифрованного пароля. Как и любой другой сервер базы данных, Firebird использует соответствующие средства защиты физического, сетевого доступа и файловой системы. Firebird может хранить зашифрованные данные, но за исключением шифрования пароля он не предоставляет средств шифрования самих данных.
2. Проектирование базы данных для информационной системы "Компьютерные комплектующие"
С точки зрения проектирования БД в рамках системного анализа, необходимо осуществить первый этап, т.е. провести подробное словесное описание объектов предметной области и реальных связей, которые присутствуют между описываемыми объектами. В общем случае существуют два подхода к выбору состава и структуры предметной области:
Функциональный подход - он реализует принцип движения "от задач" и применяется тогда, когда заранее известны функции некоторой группы лиц и комплексов задач, для обслуживания информационных потребностей которых создается рассматриваемая БД.
Предметный подход - когда информационные потребности будущих пользователей БД жестко не фиксируются. БД, конструируемая при этом, называется предметной, то есть она может быть использована при решении множества разнообразных, заранее не определенных задач.
2.1 Системный анализ предметной области
Системный анализ должен заканчиваться подробным описанием информации об объектах предметной области, которая требуется для решения конкретных задач. Эта область должна храниться в БД, формулировкой конкретных задач, которые будут решаться с использованием данной БД с кратким описанием алгоритмов их решения, описанием выходных документов, которые должны генерироваться в системе, описанием входных документов, которые служат основанием для заполнения данными БД. [4]
В базе данных "Компьютерные комплектующие" было выбрано 7 сущностей:
· "Товар" - содержит информацию о товарах;
· "Устройства" - содержит сведения об устройствах;
· "Производитель" - содержит информацию о производителях;
· "Корзина" - отображает количество приобретаемого товара;
· "Покупка" - содержит информацию о приобретаемых товарах;
· "Клиент" - содержит данные о клиентах;
· "Консультант" - содержит данные о работниках.
Для данных сущностей выбраны следующие связи:
· связь 1-ко-многим между сущностями Клиент и Покупка;
· связь 1-ко-многим между сущностями Консультант и Покупка;
· связь 1-ко-многим между сущностями Устройство и Товар;
· связь 1-ко-многим между сущностями Производитель и Товар;
· связь 1-ко-многим между сущностями Товар и Корзина;
· связь 1-ко-многим между сущностями Корзина и Покупка;
2.2 Инфологическое моделирование
Инфологическая модель применяется на втором этапе проектирования БД, то есть после словесного описания предметной области. Процесс проектирования длительный, он требует обсуждений с заказчиком, со специалистами в предметной области. Инфологическая модель должна включать такое формализованное описание предметной области, которое легко будет "читаться" не только специалистами по БД. И это описание должно быть настолько ёмким, чтобы можно было оценить глубину и корректность проработки проекта БД и оно не должно быть привязано к конкретной СУБД.
Выбор СУБД - это отдельная задача, для корректного ее решения необходимо иметь проект, который не привязан ни к какой конкретной СУБД.
Инфологическое проектирование, прежде всего, связано с попыткой представления семантики предметной области в модели БД. Реляционная модель данных в силу своей простоты и лаконичности не позволяет отобразить семантику, то есть смысл предметной области. [2]
2.3 Даталогическое проектирование
Важной частью даталогического проектирования является нормализация - разделение групп элементов данных с целью установления основных отношений, уменьшения избыточности и объединения связанных элементов, данных в структуры, которыми можно эффективно манипулировать. Использование ненормализованных БД может привести к нарушению целостности базы данных. Задачей на данном этапе является БД к третьей нормальной форме, так как в этом случае не будет нарушена целостность данных, а дальнейшая нормализация до четвертой нормальной формы, как показывает практика, не является необходимой. Для реализации нормализации БД, необходимо последовательно привести базу данных от первой нормальной формы к третьей. Сначала следует привести БД к первой нормальной форме, делая значения всех атрибутов во всех столбцах атомарными. Далее идет определение первичных ключей и зависящих от них не ключевых полей. Для приведения БД ко второй нормальной форме следует создать отдельную таблицу для каждого первичного ключа и переместить в созданную таблицу соответствующий ключ вместе с зависимыми неключевыми полями. Для приведения БД к третьей нормальной форме необходимо определить зависимые поля и создать новую таблицу для каждого из таких полей. Таким образом, все поля в таблицах, приведенных к третьей нормальной форме, будут независимыми.
2.4 Физическое проектирование
Это выбор эффективного размещения БД на внешних носителях для обеспечения наиболее эффективной работы приложения. В настоящий момент в качестве физических моделей используют различные методы размещения данных, основанные на файловых структурах: это организация файлов прямого и последовательного доступа, индексных файлов и инвертированных файлов, файлов, использующих различные методы хеширования, взаимосвязанных файлов. Кроме того, современные СУБД широко используют страничную организацию данных. Физические модели данных, основанные на страничной организации, являются наиболее перспективными. [3]
2.5 Создание базы данных
База данных "Компьютерные комплектующие" была создана и зарегистрирована в IB Expert.
В данной базе данных для определения типов данных столбцов таблиц используются домены, представленные в таблице 1.
Таблица 2. 5. 1. Созданные домены.
Имя домена |
Тип |
Длина |
Значение по умолчанию |
Ограничения |
|
D_CEN |
DECIMAL |
10,2 |
>0 |
||
D_DATA |
TIMESTAMP |
<='TODAY' |
|||
D_NO |
SMALLINT |
>0 |
|||
D_VCH |
VARCHAR |
40 |
нет |
В таблице 2, приведенной ниже, можно рассмотреть все определенные таблицы базы данных с указанием их дополнительных свойств. Кроме того, стоит отметить факт наличия связности данных, реализованный путем задания ограничений по внешнему ключу в процессе создания таблиц в программном средстве IBExpert.
Таблица 2. 5. 2. Созданные таблицы.
Имя таблицы |
Имя Поля |
Тип |
Длина |
Десятичная часть |
Имя домена |
|
Pokupka |
NO_POKUPKI |
SMALLINT |
D_NO |
|||
DATAPRIDAJI |
TIMESTAMP |
D_DATA |
||||
NO_KONS |
SMALLINT |
D_NO |
||||
CENAGLAV |
DECIMAL |
10 |
2 |
D_CEN |
||
NO_KLI |
SMALLINT |
D_NO |
||||
NO_KORZ |
SMALLINT |
D_NO |
||||
Klient |
NO_KLI |
SMALLINT |
D_NO |
|||
FAMILIYA |
VARCHAR |
40 |
D_VCH |
|||
IMYA |
VARCHAR |
40 |
D_VCH |
|||
OTCHESTVO |
VARCHAR |
40 |
D_VCH |
|||
TELEFON |
VARCHAR |
40 |
D_VCH |
|||
E_MAIL |
VARCHAR |
40 |
D_VCH |
|||
GOROD |
VARCHAR |
40 |
D_VCH |
|||
ULICA |
VARCHAR |
40 |
D_VCH |
|||
DOM |
VARCHAR |
40 |
D_VCH |
|||
Konsultant |
NO_KONS |
SMALLINT |
D_NO |
|||
FAMILIYAKONS |
VARCHAR |
40 |
D_VCH |
|||
IMYAKONS |
VARCHAR |
40 |
D_VCH |
|||
OTCHESTVOKONS |
VARCHAR |
40 |
D_VCH |
|||
TELEFONKONS |
VARCHAR |
40 |
D_VCH |
|||
DATAPRIEMA |
VARCHAR |
40 |
D_VCH |
|||
GORODKONS |
VARCHAR |
40 |
D_VCH |
|||
ULICAKONS |
VARCHAR |
40 |
D_VCH |
|||
DOMKONS |
VARCHAR |
40 |
D_VCH |
|||
Korzina |
NO_KORZ |
SMALLINT |
D_NO |
|||
KOLICHESTVO |
VARCHAR |
40 |
D_VCH |
|||
NO_TOV |
SMALLINT |
D_NO |
||||
Tovar |
NO_TOV |
SMALLINT |
D_NO |
|||
SERIALNO |
VARCHAR |
40 |
D_VCH |
|||
PERTNO |
VARCHAR |
40 |
D_VCH |
|||
CENA |
DECIMAL |
10 |
2 |
D_CEN |
||
MODEL |
VARCHAR |
40 |
D_VCH |
|||
NO_USTR |
SMALLINT |
D_NO |
||||
NO_PROIZ |
SMALLINT |
D_NO |
||||
Ustroistvo |
NO_USTR |
SMALLINT |
D_NO |
|||
NAIMENOVANIE |
VARCHAR |
40 |
D_VCH |
|||
Proizvoditel |
NO_PROIZ |
SMALLINT |
D_NO |
|||
NAIMPROIZV |
VARCHAR |
40 |
D_VCH |
Созданные таблицы соответствуют разработанной физической модели данных, таким образом задача реализации физической модели выполнена.
После проработки всех теоретических аспектов создания базы данных, можно приступать к процессу программирования доменов и таблиц. Для этого в SQL редактор написали код для 4 доменов:
Таблица 2. 5. 3. Домены.
Домен D_CEN |
|
CREATE DOMAIN D_CEN AS DECIMAL (10,2) NOT NULL CHECK (value>0); |
|
Домен D_DATA |
|
CREATE DOMAIN D_DATA AS TIMESTAMP NOT NULL CHECK (value<='TODAY'); |
|
Домен D_NO |
|
CREATE DOMAIN D_NO AS SMALLINT NOT NULL CHECK (value >0); |
|
Домен D_VCH |
|
CREATE DOMAIN D_VCH AS VARCHAR (40) CHARACTER SET WIN1251 NOT NULL COLLATE WIN1251; |
После создания доменов, началось создание таблиц. Всего в БД будет создано семь таблиц. Таблицы имеют связи, реализуемые с помощью первичных и вторичных (внешних) ключевых полей. Кроме связей эти поля также влияют на целостность данных.
Для создания таблицы KORZINA был написан следующий SQL код, в котором так же указаны ключевые поля:
Таблица 2. 5. 4. Таблица "Корзина".
SQL Код: |
|
CREATE TABLE KORZINA ( NO_KORZ D_NO NOT NULL /* D_NO = SMALLINT NOT NULL CHECK (value >0) */, KOLICHESTVO D_VCH NOT NULL /* D_VCH = VARCHAR (40) NOT NULL */, NO_TOV D_NO NOT NULL /* D_NO = SMALLINT NOT NULL CHECK (value >0) */ ); ); /*** Primary Keys ***/ ALTER TABLE KORZINA ADD PRIMARY KEY (NO_KORZ); |
Так же было создано автоинкрементное поле для таблицы KORZINA:
Таблица 2. 5. 5. Автоинкрементное поле.
SQL Код: |
|
CREATE OR ALTER TRIGGER KORZINA_BI0 FOR KORZINA ACTIVE BEFORE INSERT POSITION 0 AS begin if (NEW. no_korz IS NULL) then NEW. no_korz=GEN_ID (gen_korz_no,1); End |
Подобным образом были созданы таблицы KLIENT, KONSULTANT, POKUPKA, TOVAR, USTROIYSTVO, PROIZVODITEL. Для этих таблиц так же были заданы ключевые поля, внешние ключи, и разработаны генераторы для создания автоинкрементных полей.
2.6 Программирование бизнес - логики
Бизнес-логика - в разработке информационных систем - совокупность правил, принципов, зависимостей поведения объектов предметной области (области человеческой деятельности, которую система поддерживает). Иначе можно сказать, что бизнес-логика - это реализация правил и ограничений автоматизируемых операций.
В фазе бизнес-моделирования и разработки требований бизнес-логика может описываться в виде:
· текста;
· концептуальных аналитических моделей предметной области;
· бизнес-правил;
· разнообразных алгоритмов;
· диаграмм деятельности;
· графов и диаграмм перехода состояний;
· моделей бизнес-процессов.
РСУБД предоставляет широкий выбор вариантов программирования бизнес - логики позволяя написать просмотры, хранимые процедуры, триггеры, исключения. Для данной БД было создано 8 просмотров, 26 хранимых процедур, 7 триггеров и 2 исключения (см. Приложение 1).
3. Разработка Windows-приложения
Для разработки данного приложения на компонент DataModule2 были помещены не визуальные компоненты, которые показаны на рисунке 3. 1
Рис. 3.1. Компоненты в DataModule2
1. Были настроены все компоненты, в частности IBDatabase1 и IBTransaction1. В свойстве DefaultAction компонента IBTransaction1 было установлено значение TACOMMIT, отвечающее за подтверждение всех действующих транзакций в приложении. Но так как данное действие срабатывает при выходе их приложения, было принято решение подтверждать транзакции как можно раньше после выполнения каждого действия, связанного с изменением состояния базы данных. В коде программы подобные действия обычно реализуются, используя программный код типа "IBTransaction1->Commit ()". Это позволяет сразу увидеть изменения, не выходя их программы.
В свойстве Transaction Editor было установлено Read Committed. Так же были настроены свойства DatabaseName, DefaultTransaction для компонента IBDatabase1 и свойство DefaultDatabase для компонента IBTransaction1. Данные настройки этих компонентов показаны на рисунках ниже.
Рис. 3.2. Настройка компонента IBDatabase1
Рис. 3.3. Настройка компонента IBTransaction
Были установлены и настроены все компоненты соединения с базой данных и протестированы в рамках одной формы и таблицы. Далее необходимо проделать аналогичные действия для оставшихся таблиц, используя визуальные компоненты.
На главную форму поместила компонент MainMenu, для переключения между формами содержащими отчет и информацию о приобретенных товарах.
Рис. 3. 4. Главное окно программы
Для просмотра содержимого таблицы нужно воспользоваться меню, в котором можно выбрать интересующие нас данные. Для отображения таблицы на экране формы добавила на форму компонент DBGrid, а так же не визуальные компоненты в DataModule2 и настроила их.
Рис. 3.5. Настройка компонентов для отображения таблицы.
Результат настройки данных компонентов можно увидеть на рисунке 3. 6.
Рис. 3.6. Форма, на которой отображена таблица "Товары".
Для того, чтобы добавить, изменить или удалить данные из таблицы, добавила на форму компоненты: Button - для подтверждения действия и Edit - для добавления, изменения и удаления данных. Для проверки работоспособности данной программы выполним следующие действия. Выполним ввод данных в таблицу и выберем нужное действие.
Рис. 3.7. Ввод данных в таблицу Товаров.
На рисунке 3. 8 показана таблица Товаров после добавления в нее данных.
Рис. 3.8. Результат добавления данных в таблицу Товары.
Для изменения данных о товаре - введем номер товара и введем нужную информацию.
Рис. 3.9. Изменение данных в таблице Товары
На рисунке 3. 10 показана таблица Товаров после изменения в ней данных.
Рис. 3.10. Результат изменения данных в таблице Товары
Для удаления нужно ввести номер товара, как показано на рисунке 3. 11.
Рис. 3.11. Удаление записи из таблицы Товары
На рисунке 3. 12 показана таблица Товаров после удаления в ней данных.
Рис. 3.12. Результат удаления из таблицы Товары
Для всех этих действий приведен код в листинге 1.
Листинг 1. Обработчик события кнопки Button1 для удаления, изменения или добавления. |
|
void __fastcall TForm1:: Button1Click (TObject *Sender) {DataModule2->INS_TOV->ParamByName ("NO_TOV") - >AsString=Edit1->Text; DataModule2->INS_TOV->ParamByName ("NO_USTR") - >AsString=Edit2->Text; DataModule2->INS_TOV->ParamByName ("NO_PROIZ") - >AsString=Edit3->Text; DataModule2->INS_TOV->ParamByName ("MODEL") - >AsString=Edit4->Text; DataModule2->INS_TOV->ParamByName ("SERIALNO") - >AsString=Edit5->Text; DataModule2->INS_TOV->ParamByName ("PARTNO") - >AsString=Edit6->Text; DataModule2->INS_TOV->ParamByName ("CENA") - >AsString=Edit7->Text; if ( (Edit1->Text=="") || (Edit2->Text=="") || (Edit3->Text=="") || (Edit4->Text=="") || (Edit5->Text=="") || (Edit6->Text=="") || (Edit7->Text=="")) { ShowMessage ("заполните все поля корректно"); Form1->Repaint (); } else { DataModule2->INS_TOV->Prepare (); // подготовка к выполнению транзакции DataModule2->INS_TOV->ExecProc (); // выполнение транзакции DataModule2->IBTable1->Close (); DataModule2->IBTable1->Open (); // закрываем и открываем таблицу для обновления данных Edit1->Clear (); // очистка полей ввода Edit2->Clear (); // очистка полей ввода Edit3->Clear (); // очистка полей ввода Edit4->Clear (); // очистка полей ввода Edit5->Clear (); // очистка полей ввода Edit6->Clear (); // очистка полей ввода Edit7->Clear (); // очистка полей ввода DataModule2->IBTransaction1->Commit (); DataModule2->IBTable1->Close (); DataModule2->IBTable1->Open (); // закрываем и открываем таблицу для обновления данных ShowMessage ("запись добавлена"); }} // --------------------------------------------------------------------------- void __fastcall TForm1:: Button2Click (TObject *Sender) {DataModule2->UPD_TOV->ParamByName ("NO_TOV") - >AsString=Edit1->Text; DataModule2->UPD_TOV->ParamByName ("NO_USTR") - >AsString=Edit2->Text; DataModule2->UPD_TOV->ParamByName ("NO_PROIZ") - >AsString=Edit3->Text; DataModule2->UPD_TOV->ParamByName ("MODEL") - >AsString=Edit4->Text; DataModule2->UPD_TOV->ParamByName ("SERIALNO") - >AsString=Edit5->Text; DataModule2->UPD_TOV->ParamByName ("PARTNO") - >AsString=Edit6->Text; DataModule2->UPD_TOV->ParamByName ("CENA") - >AsString=Edit7->Text; if ( (Edit1->Text=="") || (Edit2->Text=="") || (Edit3->Text=="") || (Edit4->Text=="") || (Edit5->Text=="") || (Edit6->Text=="") || (Edit7->Text=="")) { ShowMessage ("заполните все поля корректно"); Form1->Repaint (); } else { DataModule2->UPD_TOV->Prepare (); // подготовка к выполнению транзакции DataModule2->UPD_TOV->ExecProc (); // выполнение транзакции DataModule2->IBTable1->Close (); DataModule2->IBTable1->Open (); // закрываем и открываем таблицу для обновления данных Edit1->Clear (); // очистка полей ввода Edit2->Clear (); // очистка полей ввода Edit3->Clear (); // очистка полей ввода Edit4->Clear (); // очистка полей ввода Edit5->Clear (); // очистка полей ввода Edit6->Clear (); // очистка полей ввода Edit7->Clear (); // очистка полей ввода DataModule2->IBTransaction1->Commit (); DataModule2->IBTable1->Close (); DataModule2->IBTable1->Open (); // закрываем и открываем таблицу для обновления данных ShowMessage ("запись изменена"); }} // --------------------------------------------------------------------------- void __fastcall TForm1:: Button3Click (TObject *Sender) {DataModule2->DEL_TOV->ParamByName ("NO_TOV") - >AsString=Edit1->Text; if (Edit1->Text=="") { ShowMessage ("Заполните поле корректно"); Form1->Repaint (); } else { DataModule2->DEL_TOV->Prepare (); DataModule2->DEL_TOV->ExecProc (); DataModule2->IBTable1->Close (); DataModule2->IBTable1->Open (); Edit1->Clear (); DataModule2->IBTransaction1->Commit (); DataModule2->IBTable1->Close (); DataModule2->IBTable1->Open (); // закрываем и открываем таблицу для обновления данных ShowMessage ("Запись удалена"); }} |
4. Разработка Web-приложения
Для соединения с базой данных используется метод ibase_connect (). Чтобы создать соединение с БД "Компьютерные комплектующие" был создан код, приведенный на листинге 2. Для запроса к базе данных используется переменная $query, а для получения идентификатора запроса - переменная $result, как показано ниже. Так же в листинге представлен код вывода полученной информации.
Листинг 2. |
|
<html> <head> <title>ПРОСМОТР</title> </head> <body bgcolor="E0FFFF"> <table align="center"> <td> <a href="INDEX.html">НА ГЛАВНУЮ</a><br> <table align=center border="0" cellpadding="0" cellspacing="0" class="tbl1" width="850" height="100" bgcolor="008B8B"> <td> <center> <font> <h2><font color="white">Просмотр записей<br> таблицы <br><i>"Товар"</i></h2></font> </td> </table> </td> </table> <table align="center" bgcolor="white"> <td> <? php $host='172. 23. 64. 64: // home/ftp/10/1410028/G141001_YUSHCHENKO. FDB'; /*$host='knit-614-01: D: /DB/G141001_YUSHCHENKO. FDB'; */ $dbcharset = 'WIN1251'; $usname = 'sysdba'; $pswrd = 'masterkey'; $db = ibase_pconnect ($host, $usname, $pswrd,$dbcharset); if (! $db) {echo 'ошибка соединения с базой данных'; exit; } $query="select * from TOVAR"; $result=ibase_query ($query); echo '<table border=1>'; echo '<tr><th bgcolor=\"#CCCCFF\"> Номер товара </th>'. '<th bgcolor=\"#CCCCFF\"> Серийный номер </th>'. '<th bgcolor=\"#CCCCFF\"> Парт номер </th>'. '<th bgcolor=\"#CCCCFF\"> Цена</th>'. '<th bgcolor=\"#CCCCFF\"> Модель</th>'. '<th bgcolor=\"#CCCCFF\"> Номер производителя</th>'. '<th bgcolor=\"#CCCCFF\"> Номер устройства</th>'. '<tr>'; $i=0; while ($row=ibase_fetch_row ($result)) {$i++; echo "<tr><td>$row [0] </td> <td>$row [1] </td> <td>$row [2] </td> <td>$row [3] </td> <td>$row [4] </td> <td>$row [5] </td> <td>$row [6] </td><tr>"; } echo "</table>"; ibase_free_result ($result); ? > </td> </table> </body> </html> |
Программный код, реализующий Web-приложение с использованием РНР и СУБД Firebird приведен в приложении 2.
Заключение
В рамках выполнения курсовой работы была разработана информационная система "Компьютерные комплектующие", основанная на клиент-серверной технологии, а так же получены навыки работы с данной технологией.
Были достигнуты поставленные цели и задачи, а именно:
· создана информационная система "Компьютерные комплектующие" с применением клиент-серверной технологии;
· разработана базы данных в РСУБД Firebird;
· создано приложение, основанное на клиент-серверной технологии и работающее в операционной системе Windows;
· создано web-приложение.
В ходе выполнения поставленных задач и целей были получены навыки работы с базами данных, технологией IBExpert, PHP, а также программирования в среде Borland C++ Builder 6. 0.
Список используемой литературы
1. Барри Х. FIREBIRD: руководство разработчика баз данных. СПб.: БХВ-Петербург, 2011. - 1104 с. - ISBN 5-94157-609-9
2. Кузнецов С.Д. Основы баз данных. - 2-е изд. - М.: Интернет-университет информационных технологий; БИНОМ. Лаборатория знаний, 2010. - 484 с. - ISBN 978-5-94774-736-2
3. Джаррод Холингворт, Боб Сворт, Марк Кэшмэн, Поль Густавсон Borland C++ Builder 6. Руководство разработчика = Borland C++ Builder 6 Developer's Guide. - М.: "Вильямс", 2004. - С. 976. - ISBN 0-672-32480-6
4. Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс = Database Systems: The Complete Book. - Вильямс, 2008. - 1088 с. - ISBN 5-8459-0384-X
5. Коннолли Т., Бегг К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика = Database Systems: A Practical Approach to Design, Implementation, and Management. - 3-е изд. - М.: Вильямс, 2003. - 1436 с. - ISBN 0-201-70857-4
Приложения
Приложение 1
Windows приложение |
|
// --------------------------------------------------------------------------- #include <vcl. h> #pragma hdrstop #include "Unit1. h" #include "Unit2. h" #include "Unit3. h" #include "Unit4. h" #include "Unit5. h" #include "Unit6. h" #include "Unit7. h" #include "Unit8. h" // --------------------------------------------------------------------------- #pragma package (smart_init) #pragma resource "*. dfm" TForm1 *Form1; // --------------------------------------------------------------------------- __fastcall TForm1:: TForm1 (TComponent* Owner) : TForm (Owner) {} // --------------------------------------------------------------------------- void __fastcall TForm1:: Button1Click (TObject *Sender) {DataModule2->INS_TOV->ParamByName ("NO_TOV") - >AsString=Edit1->Text; DataModule2->INS_TOV->ParamByName ("NO_USTR") - >AsString=Edit2->Text; DataModule2->INS_TOV->ParamByName ("NO_PROIZ") - >AsString=Edit3->Text; DataModule2->INS_TOV->ParamByName ("MODEL") - >AsString=Edit4->Text; DataModule2->INS_TOV->ParamByName ("SERIALNO") - >AsString=Edit5->Text; DataModule2->INS_TOV->ParamByName ("PARTNO") - >AsString=Edit6->Text; DataModule2->INS_TOV->ParamByName ("CENA") - >AsString=Edit7->Text; if ( (Edit1->Text=="") || (Edit2->Text=="") || (Edit3->Text=="") || (Edit4->Text=="") || (Edit5->Text=="") || (Edit6->Text=="") || (Edit7->Text=="")) { ShowMessage ("заполните все поля корректно"); Form1->Repaint (); } else { DataModule2->INS_TOV->Prepare (); // подготовка к выполнению транзакции DataModule2->INS_TOV->ExecProc (); // выполнение транзакции DataModule2->IBTable1->Close (); DataModule2->IBTable1->Open (); // закрываем и открываем таблицу для обновления данных Edit1->Clear (); // очистка полей ввода Edit2->Clear (); // очистка полей ввода Edit3->Clear (); // очистка полей ввода Edit4->Clear (); // очистка полей ввода Edit5->Clear (); // очистка полей ввода Edit6->Clear (); // очистка полей ввода Edit7->Clear (); // очистка полей ввода DataModule2->IBTransaction1->Commit (); DataModule2->IBTable1->Close (); DataModule2->IBTable1->Open (); // закрываем и открываем таблицу для обновления данных ShowMessage ("запись добавлена"); }} // --------------------------------------------------------------------------- void __fastcall TForm1:: Button2Click (TObject *Sender) {DataModule2->UPD_TOV->ParamByName ("NO_TOV") - >AsString=Edit1->Text; DataModule2->UPD_TOV->ParamByName ("NO_USTR") - >AsString=Edit2->Text; DataModule2->UPD_TOV->ParamByName ("NO_PROIZ") - >AsString=Edit3->Text; DataModule2->UPD_TOV->ParamByName ("MODEL") - >AsString=Edit4->Text; DataModule2->UPD_TOV->ParamByName ("SERIALNO") - >AsString=Edit5->Text; DataModule2->UPD_TOV->ParamByName ("PARTNO") - >AsString=Edit6->Text; DataModule2->UPD_TOV->ParamByName ("CENA") - >AsString=Edit7->Text; if ( (Edit1->Text=="") || (Edit2->Text=="") || (Edit3->Text=="") || (Edit4->Text=="") || (Edit5->Text=="") || (Edit6->Text=="") || (Edit7->Text=="")) { ShowMessage ("заполните все поля корректно"); Form1->Repaint (); } else { DataModule2->UPD_TOV->Prepare (); // подготовка к выполнению транзакции DataModule2->UPD_TOV->ExecProc (); // выполнение транзакции DataModule2->IBTable1->Close (); DataModule2->IBTable1->Open (); // закрываем и открываем таблицу для обновления данных Edit1->Clear (); // очистка полей ввода Edit2->Clear (); // очистка полей ввода Edit3->Clear (); // очистка полей ввода Edit4->Clear (); // очистка полей ввода Edit5->Clear (); // очистка полей ввода Edit6->Clear (); // очистка полей ввода Edit7->Clear (); // очистка полей ввода DataModule2->IBTransaction1->Commit (); DataModule2->IBTable1->Close (); DataModule2->IBTable1->Open (); // закрываем и открываем таблицу для обновления данных ShowMessage ("запись изменена"); }} // --------------------------------------------------------------------------- void __fastcall TForm1:: Button3Click (TObject *Sender) {DataModule2->DEL_TOV->ParamByName ("NO_TOV") - >AsString=Edit1->Text; if (Edit1->Text=="") { ShowMessage ("Заполните поле корректно"); Form1->Repaint (); } else { DataModule2->DEL_TOV->Prepare (); DataModule2->DEL_TOV->ExecProc (); DataModule2->IBTable1->Close (); DataModule2->IBTable1->Open (); Edit1->Clear (); DataModule2->IBTransaction1->Commit (); DataModule2->IBTable1->Close (); DataModule2->IBTable1->Open (); // закрываем и открываем таблицу для обновления данных ShowMessage ("Запись удалена"); }} // --------------------------------------------------------------------------- void __fastcall TForm1:: Edit1Change (TObject *Sender) {TLocateOptions LO; DataModule2->IBTable1->Locate ("NO_TOV", Edit1->Text, LO<<loPartialKey<< loCaseInsensitive); } // --------------------------------------------------------------------------- void __fastcall TForm1:: DBGrid1TitleClick (TColumn *Column) {DataModule2->IBTable1->Active=false; DataModule2->IBTable1->IndexFieldNames=Column->FieldName; DataModule2->IBTable1->Active=true; } // --------------------------------------------------------------------------- void __fastcall TForm1:: Edit8Change (TObject *Sender) { DataModule2->IBTable1->Filtered=true; if (Edit8->Text=="") { DataModule2->IBTable1->Filtered=false; }} // --------------------------------------------------------------------------- void __fastcall TForm1:: N1Click (TObject *Sender) {Form3->QuickRep1->Preview (); } // --------------------------------------------------------------------------- void __fastcall TForm1:: Button4Click (TObject *Sender) {Form4->Show (); } // --------------------------------------------------------------------------- void __fastcall TForm1:: Button5Click (TObject *Sender) {Form5->Show (); } // --------------------------------------------------------------------------- void __fastcall TForm1:: N2Click (TObject *Sender) { Form6->Show (); } // --------------------------------------------------------------------------- void __fastcall TForm1:: Timer1Timer (TObject *Sender) {DataModule2->IBTable1->Close (); DataModule2->IBTable1->Open (); DataModule2->IBTable2->Close (); DataModule2->IBTable2->Open (); DataModule2->IBTable3->Close (); DataModule2->IBTable3->Open (); } // --------------------------------------------------------------------------- |
Приложение 2
WEB приложение |
|
html |
|
<html> <head> <title>Главная страница </title> <link href="style. css" rel="stylesheet" type="text/css"> </head><body> <table align=center border="0" cellpadding="0" cellspacing="0" class="tbl1" width="850" bgcolor="008B8B"> <tr> <td colspan="4"></td> <tr valign="top"> <td width="60%" height="91"></td> <td width="40%" height="91" colspan="3" valign="top" align="center"> </td> <tr> <td colspan="3" > <tr> <td valign="top" colspan="4"> <table width="100%" border="0" cellspacing="15" bgcolor="E0FFFF"> <tr> <td width="17%" valign="top"> <br> </td> <td width="100%"> <font color="white"> <p><h1> <a href="TOVAR.html">таблица ТОВАР</a><br> <a href="USTROIYSTVO.html">таблица УСТРОЙСТВА</a><br> <a href="PROIZVODITEL.html">таблица ПРОИЗВОДИТЕЛЬ</a><br> <a href="KONSULTANT.html">таблица КОНСУЛЬТАНТ</a><br> <a href="KLIENT.html">таблица КЛИЕНТ</a><br> <a href="KORZINA.html">таблица КОРЗИНА</a><br> <a href="POKUPKA.html">таблица ПОКУПКА</a><br> </p></h1><p></p><p> </p></td> </tr> </table> <h2> </h2> </td> </tr> </table></body></html> |
|
Html добавления |
|
<html> <head> <title>Добавление в таблицу Товар</title> </head> <body bgcolor="#32CD32"> <table align="center"> <td width="200" bgcolor="#7FFFD4"><b> <a href="SELECT_TOV. php">Просмотреть список товаров</a><br> <a href="SEARCH_TOV.html">Осуществить поиск товара по устройству</a><br> <a href="SEARCH_TOV_V.html">Осуществить поиск товара </a><br> <a href="INSERT_TOV.html">Добавить данные о товаре </a><br> <a href="UPD_TOV.html"> Изменить данные о товаре </a><br> <a href="DEL_TOV.html"> Удалить данные о товаре </a><br> <a href="INDEX.html">НА ГЛАВНУЮ</a><br> </td> <td> <table align=center border="0" cellpadding="0" cellspacing="0" class="tbl1" width="600" height="400" bgcolor="#32CD32"> <td> <center> <font> <h2><font color="white">Добавление записей<br> в таблицу <br><i>"Товар"</i></h2></font> <FORM action="INSERT_TOV. php" method="POST"> <TABLE border="0" align=center bgcolor="#528B8B"> <TR><TD><font color="white">Номер товара</TD><TD> <INPUT type="number" name="NO_TOV" maxlength="3"></TD></TR> <TR><TD><font color="white">Серийный номер</TD><TD> <INPUT type="text" name="SERIALNO" maxlength="40"> </TD></TR> <TR><TD><font color="white">Парт номер</TD><TD> <INPUT type="text" name="PARTNO" maxlength="40"> </TD></TR> <TR><TD><font color="white">Цена</TD><TD> <INPUT type="text" name="CENA" maxlength="13"> </TD></TR> <TR><TD><font color="white">Модель</TD><TD> <INPUT type="text" name="MODEL" maxlength="40"></TD></TR> <TR><TD><font color="white">Номер устройства</TD><TD> <INPUT type="number" name="NO_USTR" maxlength="3"></TD></TR> <TR><TD><font color="white">Номер производителя</TD><TD> <INPUT type="number" name="NO_PROIZ" maxlength="3"></TD></TR> <TR><TD align="center"></TD> <TD><INPUT type="submit" value="ДОБАВИТЬ В БД"></TD><tr> <td></td> <TD><INPUT type="reset" value="ОЧИСТИТЬ ПОЛЯ"></TD></TR> <td> </td> </TABLE> </td> </table> </td> </table> <table align="right" bgcolor="black"> <td> </td> </table> </body> </html> |
|
Php добавления |
|
<? php $NO_TOV=$_POST ['NO_TOV']; $SERIALNO=$_POST ['SERIALNO']; $PARTNO=$_POST ['PARTNO']; $CENA=$_POST ['CENA']; $MODEL=$_POST ['MODEL']; $NO_USTR=$_POST ['NO_USTR']; $NO_PROIZ=$_POST ['NO_PROIZ']; $host='172. 23. 64. 64: // home/ftp/10/1410028/G141001_YUSHCHENKO. FDB'; /*$host='knit-614-01: D: /DB/G141001_YUSHCHENKO. FDB'; */ $dbcharset = 'WIN1251'; $usname = 'sysdba'; $pswrd = 'masterkey'; $db = ibase_pconnect ($host, $usname, $pswrd,$dbcharset); if (! $db) {echo 'Ошибка соединения с базой данных'; exit; } $query1 ="execute procedure INSERT_TOV1 ('". $NO_TOV. "','". $SERIALNO. "','". $PARTNO. "','". $CENA. "','". $MODEL. "','". $NO_USTR. "','". $NO_PROIZ. "')"; $it=ibase_trans (); echo '<br>'; $result=ibase_query ($query1); $ic=ibase_commit (); if ($result) echo '<p style="color: GREEN; ">Запись добавлена в базу данных</p>'; ? > |
|
Html изменения |
|
<html> <head> <title>ИЗМЕНЕНИЕ</title> </head> <body bgcolor="#BA55D3"> <table align="center"> <td width="200" bgcolor="#D8BFD8"><b> <a href="SELECT_TOV. php">Просмотреть список товаров</a><br> <a href="SEARCH_TOV.html">Осуществить поиск товара по устройству</a><br> <a href="SEARCH_TOV_V.html">Осуществить поиск товара </a><br> <a href="INSERT_TOV.html">Добавить данные о товаре </a><br> <a href="UPD_TOV.html"> Изменить данные о товаре </a><br> <a href="DEL_TOV.html"> Удалить данные о товаре </a><br> <a href="INDEX.html">НА ГЛАВНУЮ</a><br> </td> <td> <table align=center border="0" cellpadding="0" cellspacing="0" class="tbl1" width="600" height="100" bgcolor="#BA55D3"> <td> <center> <font> <h2><font color="white">Изменение записей<br> в таблицу <br><i>"Товар"</i></h2></font> <FORM action="UPD_TOV. php" method="POST"> <TABLE border="0" align=center bgcolor="#528B8B"> <TR><TD><font color="white">Номер товара</TD><TD> <INPUT type="number" name="NO_TOV" maxlength="3"></TD></TR> <TR><TD><font color="white">Серийный номер</TD><TD> <INPUT type="text" name="SERIALNO" maxlength="40"> </TD></TR> <TR><TD><font color="white">Парт номер</TD><TD> <INPUT type="text" name="PARTNO" maxlength="40"> </TD></TR> <TR><TD><font color="white">Цена</TD><TD> <INPUT type="text" name="CENA" maxlength="13"> </TD></TR> <TR><TD><font color="white">Модель</TD><TD> <INPUT type="text" name="MODEL" maxlength="40"></TD></TR> <TR><TD><font color="white">Номер устройства</TD><TD> <INPUT type="number" name="NO_USTR" maxlength="3"></TD></TR> <TR><TD><font color="white">Номер производителя</TD><TD> <INPUT type="number" name="NO_PROIZ" maxlength="3"></TD></TR> <TR><TD align="center"></TD> <TD><INPUT type="submit" value="ИЗМЕНИТЬ "></TD><tr> <td></td> <TD><INPUT type="reset" value="ОЧИСТИТЬ ПОЛЯ"></TD> </TABLE> </td> </table> </td> </table> <table align="right" bgcolor="black"> <td> </td> </table> </body> </html> |
|
Php изменения |
|
<? php $NO_TOV=$_POST ['NO_TOV']; $SERIALNO=$_POST ['SERIALNO']; $PARTNO=$_POST ['PARTNO']; $CENA=$_POST ['CENA']; $MODEL=$_POST ['MODEL']; $NO_USTR=$_POST ['NO_USTR']; $NO_PROIZ=$_POST ['NO_PROIZ']; $host='172. 23. 64. 64: // home/ftp/10/1410028/G141001_YUSHCHENKO. FDB'; /*$host='knit-614-01: D: /DB/G141001_YUSHCHENKO. FDB'; */ $usname = 'sysdba'; $pswrd = 'masterkey'; $db = ibase_pconnect ($host, $usname, $pswrd); if (! $db) {echo 'Ошибка соединения с базой данных '; exit; } $query1 ="execute procedure UPD_TOV1 ('". $NO_TOV. "','". $SERIALNO. "','". $PARTNO. "','". $CENA. "','". $MODEL. "','". $NO_USTR. "','". $NO_PROIZ. "')"; $it=ibase_trans (); echo '<br>'; $result=ibase_query ($query1); $ic=ibase_commit (); if ($result) echo '<p style="color: lime; ">Запись успешно изменена</p>'; ? > |
|
Html удаления |
|
<html> <head> <title>УДАЛЕНИЕ товара</title> </head> <body bgcolor=#CD5555> <table align="center"> <td width="200" bgcolor="#FFC1C1"><b> <a href="SELECT_TOV. php">Просмотреть список товаров</a><br> <a href="SEARCH_TOV.html">Осуществить поиск товара по устройству</a><br> <a href="SEARCH_TOV_V.html">Осуществить поиск товара </a><br> <a href="INSERT_TOV.html">Добавить данные о товаре </a><br> <a href="UPD_TOV.html"> Изменить данные о товаре </a><br> <a href="DEL_TOV.html"> Удалить данные о товаре </a><br> <a href="INDEX.html">НА ГЛАВНУЮ</a><br> </td> <td> <table align=center border="0" cellpadding="0" cellspacing="0" class="tbl1" width="600" height="100" bgcolor="CD5555"> <td> <center> <font> <h2><font color="white">Удаление записей<br> из таблицы <br><i>"Товар"</i></h2></font> <FORM action="DEL_TOV. php" method="POST"> <TABLE border="0" align=center bgcolor="#8B3A3A"> <TR><TD><font color="white">Номер товара</TD><TD> <INPUT type="number" name="NO_TOV" maxlength="3"</TD></TR> <TD align="center"></TD> <TD><INPUT type="submit" value="УДАЛИТЬ "></TD><tr> <td></td> <TD><INPUT type="reset" value="ОЧИСТИТЬ ПОЛЕ"></TD></TR> <td> </td> </TABLE> </td> </table> </td> </table> <table align="right" bgcolor="black"> <td> </td> </table> </body> </html> |
|
php удаления |
|
<html> <head> <title>УДАЛЕНИЕ</title> </head> <body bgcolor=#CD5555> <table align="center"> <td width="200" bgcolor="CCCCCC"><b> <a href="SELECT_TOV. php">Просмотреть список товаров</a><br> <a href="SEARCH_TOV.html">Осуществить поиск товара по устройству</a><br> <a href="SEARCH_TOV_V.html">Осуществить поиск товара </a><br> <a href="INSERT_TOV.html">Добавить данные о товаре </a><br> <a href="UPD_TOV.html"> Изменить данные о товаре </a><br> <a href="DEL_TOV.html"> Удалить данные о товаре </a><br> <a href="INDEX.html">НА ГЛАВНУЮ</a><br> </td> <td> <table align=center border="0" cellpadding="0" cellspacing="0" class="tbl1" width="600" height="100" bgcolor="CD5555"> <td> <center> <font> <h2><font color="white">Удаление записей<br> из таблицы <br><i>"Товар"</i></h2></font> <FORM action="DEL_TOV. php" method="POST"> <TABLE border="0" align=center bgcolor="#8B3A3A"> <TR><TD><font color="white">Номер товара</TD><TD> <INPUT type="text" name="NO_TOV" maxlength="3"></TD></TR> <TD align="center"></TD> <TD><INPUT type="submit" value="УДАЛИТЬ "></TD><tr> <td></td> <TD><INPUT type="reset" value="ОЧИСТИТЬ ПОЛЕ"></TD></TR> <td> </td> </TABLE> </td> </table> </td> </table> <table align="right" bgcolor="black"> <td> <? php $NO_TOV=$_POST ['NO_TOV']; if (! $NO_TOV) {echo '<p style="color: red; ">Вы ввели не всю информацию! </p>'; exit; } $host='172. 23. 64. 64: // home/ftp/10/1410028/G141001_YUSHCHENKO. FDB'; /*$host='knit-614-01: D: /DB/G141001_YUSHCHENKO. FDB'; */ $dbcharset = 'WIN1251'; $usname = 'sysdba'; $pswrd = 'masterkey'; $db = ibase_pconnect ($host, $usname, $pswrd,$dbcharset); if (! $db) {echo 'Ошибка соединения с базой данных'; exit; } $query1 ="execute procedure DEL_TOV ('". $NO_TOV. "')"; $it=ibase_trans (); echo '<br>'; $result=ibase_query ($query1); $ic=ibase_commit (); if ($result) echo '<p style="color: lime; ">Запись удалена</p>'; ? > </td> </table> </body> </html> |
|
Html просмотра |
|
<html> <head> <title>ПРОСМОТР товара</title> <META charset=windows-1251> </head> <body bgcolor="E0FFFF"> <table align="center"> <td> <table align=center border="0" cellpadding="0" cellspacing="0" class="tbl1" width="850" height="100" bgcolor="008B8B"> <td> <a href="SELECT_TOV. php">Просмотреть список товаров</a><br> <a href="SEARCH_TOV.html">Осуществить поиск товара по устройству</a><br> <a href="SEARCH_TOV_V.html">Осуществить поиск товара </a><br> <a href="INSERT_TOV.html">Добавить данные о товаре </a><br> <a href="UPD_TOV.html"> Изменить данные о товаре </a><br> <a href="DEL_TOV.html"> Удалить данные о товаре </a><br> <a href="INDEX.html">НА ГЛАВНУЮ</a><br> <center> <font> <h2><font color="white">Просмотр записей<br> таблицы <br><i>"Товар"</i></h2></font> </td> </table> </td> </table> <table align="center" bgcolor="white"> <td> </td> </table> </body> </html> |
|
Php просмотра |
|
<html> <head> <title>ПРОСМОТР</title> </head> <body bgcolor="E0FFFF"> <table align="center"> <td> <a href="INDEX.html">НА ГЛАВНУЮ</a><br> <table align=center border="0" cellpadding="0" cellspacing="0" class="tbl1" width="850" height="100" bgcolor="008B8B"> <td> <center> <font> <h2><font color="white">Просмотр записей<br> таблицы <br><i>"Товар"</i></h2></font> </td> </table> </td> </table> <table align="center" bgcolor="white"><td> <? php $host='172. 23. 64. 64: // home/ftp/10/1410028/G141001_YUSHCHENKO. FDB'; /*$host='knit-614-01: D: /DB/G141001_YUSHCHENKO. FDB'; */ $dbcharset = 'WIN1251'; $usname = 'sysdba'; $pswrd = 'masterkey'; $db = ibase_pconnect ($host, $usname, $pswrd,$dbcharset); if (! $db) {echo 'ошибка соединения с базой данных'; exit; } |
Подобные документы
Проектирование и разработка базы данных в РСУБД Firebird. Последовательность создания приложения, основанного на клиент-серверной технологии и работающего в операционной системе Windows. Хранимые процедуры и триггеры. Доступ к сети и транзакции.
курсовая работа [2,6 M], добавлен 27.07.2013Проектирование физической и логической моделей удаленной базы данных для АЗС. Разработка базы данных в СУБД Firebird с помощью утилиты IBExpert. Создание клиентского приложения для Windows с использованием клиент-серверной технологии в среде C++ Builder.
курсовая работа [3,9 M], добавлен 18.01.2017Архитектура "клиент-сервер". Системный анализ базы данных "Газета объявлений", ее инфологическое и физическое проектирование. Программирование на стороне SQL-сервера. Разработка клиентской части в Borland C++ Builder 6.0 и с помощью Web-технологий.
курсовая работа [1,3 M], добавлен 07.07.2013Разработка базы данных для информационной системы "Библиотека". Системный анализ, инфологическое, даталогическое и физическое проектирование. Программирование бизнес-логики, разработка клиентского приложения. Создание web-приложения, web-доступ.
курсовая работа [3,3 M], добавлен 15.09.2014Реализация базы данных и серверной части информационной системы склада средствами СУБД Microsoft SQL Server. Анализ предметной области, информационных задач, пользовательской системы. Программа реализации проекта. Выработка требований и ограничений.
курсовая работа [2,4 M], добавлен 15.11.2015Системный анализ предметной области. Выбор инструментальных средств для создания программного обеспечения. Программирование на стороне SQL-сервера. Создание клиентского Win-приложения, пользовательский интерфейс. Физическое проектирование базы данных.
курсовая работа [3,7 M], добавлен 20.11.2013Функциональная модель системы. Проектирование схемы базы данных. Проектирование архитектуры системы. Принцип технологии клиент-сервер. Построение схемы ресурсов. Выбор программных средств. Разработка базы данных с использованием Microsoft SQL Server.
дипломная работа [1,1 M], добавлен 30.03.2015Программные средства для реализации базы данных и серверной части информационной системы "Учета технического обслуживания станков" средствами СУБД Microsoft SQL Server 2008. Разработка триггеров для поддержки сложных ограничений целостности в базе данных.
курсовая работа [768,3 K], добавлен 01.02.2013Информационные задачи и круг пользователей системы. Выработка требований и ограничений. Разработка проекта базы данных. Программная реализация проекта базы данных. Разработка хранимых процедур для поддержки сложных ограничений целостности в базе данных.
курсовая работа [706,2 K], добавлен 17.06.2012Анализ предметной области объекта автоматизации "Компьютерные курсы". Обзор информационных технологий, подходящих для разработки информационной системы. Требования к разрабатываемой базе данных и ее проектирование, особенности ее программной реализации.
курсовая работа [369,8 K], добавлен 30.05.2013