Файл: Международные и отечественные стандарты языков программирования. Сходство и отличия стандартов.pdf
Добавлен: 28.06.2023
Просмотров: 165
Скачиваний: 3
Модуль является главным и управляющим для остальных объектов проекта.
Для обеспечения связи с файлами базы данных размещенной на SQL сервере в разрабатываемом программном проекте в среде Builder C++ 6.0 используется хорошо зарекомендовавшая себя технология ADO (ActiveX Data Objects - объекты данных, построенные как объекты ActiveX), которая развивается и поддерживается корпорацией Microsoft.
Все компоненты должны связываться с базой данных. Делается это двумя способами либо через компонент TADOConnection либо прямым указанием базы данных в остальных компонентах. К TADOConnection остальные компоненты привязываются с помощью свойства Connection, к базе данных напрямую через свойство ConnectionString.
База данных может быть указана двумя способами через файл линка к данным (файл в формате Microsoft Data Link, расширение UDL), либо прямым заданием параметров соединения.
Значение свойства всех ConnectionString этих компонент могут быть введены напрямую в текстовой форме, но куда проще вызвать редактор свойства нажав на кнопку “…” в конце поля ввода. Окно этого свойства представлено на рис.2-4:
Рис. 2. Настройка строки связи с базой данных
При выборе “Use data link file” и нажатии на кнопку “Browse…” появляется стандартный диалог выбора файла.
При выборе в редакторе свойства “Use connection string” и нажатии на кнопку “Build…” появляется такой же property sheet, как и при выборе “Open” для Microsoft Data Link файла.
В этом окне выбирается тип базы данных, местоположение базы и параметры соединения. На первой странице выбирается тип базы данных или Provider, в терминах ADO.
Рис. 3. Свойства связи с данными
Рис. 4. Свойства связи с данными
В компоненте TADOConnection существуют свойства Provider, DefaultDatabase и Mode которые являются альтернативным методом задания частей строки параметров соединения – провайдера, базы данных (например, пути до базы MS SQL) и режима совместного использования файлов базы данных. Эти значение этих свойств автоматически включаются в строку соединения, если были заданы до активизации компонента и автоматически выставляются после соединения.
Структурно клиентская часть ПП представляет собой выполнимый .EXE файл. Кроме него для работы с БД не нужны никакие другие файлы.
При работе с БД, во избежание некорректного соединения с БД, ошибок ввода входных данных, использовались обработчики исключительных ситуаций. Которые при возникновении исключительной ситуации выводят диагностические сообщения и позволяют продолжить работу ПП дальше.
Для реализации базы данных в качестве основного инструмента был выбран сервер MS SQL 2008 DEVELOPER Edition. Данный выбор позволяет эффективно решать задачи организации таблиц базы данных, а также задачи разграниченного быстрого доступа, хранения, редактирования таблиц. Данное средство является стандартным средством, на котором реализовано большое количество промышленных баз данных, внедрена OLAP технология доступа к данным.
Фирма MicroSoft поддерживает данный продукт в смысле выпуска обновлений и гарантий эффективной работы в среде Windows 32. Одним из основных достоинств продукта проектирования новых баз данных могут использоваться другие совместимые продукты MicroSoft, MicroSoft Visio 2003, Microsoft Acess т.е. продукты спроектированные в этих системах могут адаптированы в MS SQL 2008.
Еще одним немаловажным фактором является обеспечение аппаратных требований, т.е. требования для ресурсов системы достаточно низки для обеспечения эффективной работы.
Порядок работы с Microsoft SQL Server предусматривает предварительную инсталляцию продукта, причем она может быть выполнена в двух видах Local и Server. После инсталляции продукта на данный SQL могут быть перемещены базы данных, созданные на других MS SQL серверах. Для этого необходимо запустить Enterprise Manager и в левом окне SQL сервера, при помощи правой кнопки мыши выбрать альтернативу «Все задачи» затем «Attach Database», как показано на рис. 5.
Рис. 5. Добавление существующей базы данных
После выполнения этих действий на экране появится окно «Attach Database», изображение которого представлено на рисунке 6.
После выполнения этих действий при помощи кнопки с изображением « …», необходимо выбрать файл с расширением *.mdf, который содержит сам файл базы данных. (Рекомендуется предварительно его записать в директорию
C:\Program Files\Microsoft SQL Server\MSSQL\Data\). Завершить установку баз данных, после выбора mdf-файла, нажав на кнопку с изображением Attach.
Рис. 6. Добавление существующей базы данных
Необходимо отметить, что в случае использования Интернет соединений целесообразно использовать такую схему обеспечения соединения:
- На компьютере, который является сервером, устанавливается MS SQL Server 2008 в конфигурации Server.
- На компьютере, который является сервером, инсталлируется база данных так, как показано в данном пункте.
- На компьютере, который является клиентом, устанавливается MS SQL Server 2008 в конфигурации Client.
- При инсталяции и настройке MS SQL Server 2008 Client указывается IP адрес компьютера, который является сервером.
- На компьютере, который является клиентом, запускается разработанный программный проект.
Например, выбираем пункт «Просмотр таблицы комплектующих» (рисунок 7). Результат просмотра базы данных представлен на рисунке 8.
Рис.7. Пункт главного меню «Просмотр»
Рис. 8. Выбор просмотра данных о неисправностях
Рис. 9. Результат просмотра данных
3. На следующем шаге просмотрим всю базу данных, для этого выберем альтернативу «Просмотр базы данных» в меню «Просмотр» (рисунок 10).
Рис. 10. Просмотр всей базы данных
4. После этого приведем в исполнение элемент управления – кнопку «создать» – получаем Подтверждающую надпись (рис. 11).
Рис. 11. Дочерняя форма AddSource, динамически создаваемая для добавления информации
Динамически создаваемая дочерняя форма AddSource, может использоваться не только для отображения связанных записей. Главное назначение формы AddSource это создание интерфейсов для добавления новых информационных объектов (рис.12). Для выполнения поиска заявок необходимо выбрать пункт меню «ПОИСК», как показано на рис.13.
Рис. 12. Выбор пункта меню поиск для активации поиска по дате заявки
После этого необходимо указать дату поиска (рис. 13).
Рис. 13. Дочерняя форма ParamPoisk с введенным запросом
Для отображения результатов информационного поиска, согласно выбранным настройкам, динамически создается форма ChildTemplateForm. Форма ChildTemplateForm содержит компонент DBGrid, источником данных которого является таблица – результатов динамического поиска, выполняемых при помощи компонентов AdoQuery. Результат выполненного поиска по запросу представлен на рис.14.
Рис.14. Результат выполненного поиска
При задействовании кнопки «Excel»получим отчет в среде Excel (рис.15).
Рис.15. Отчет в среде Excel
Таким образом, на примере этой программы было рассмотрено применение стандартов, как зарубежных (стандарт языка С++), так и отечественных (например, ГОСТ Р ИСО/МЭК 9126-93 Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению).
Заключение
Таким образом, в работе были рассмотрены международные и отечественные стандарты языков программирования.
Прежде всего, было дано определение стандарта. Для того чтобы компиляция одной и той же программы различными компиляторами всегда давала одинаковый результат, разрабатываются стандарты языков программирования. Существует ряд организаций, целенаправленно занимающихся вопросами стандартизации. Это Американский национальный институт стандартов ANSI (American National Standards Institute), Институт инженеров по электротехнике и электронике IEEE (Institute of Electrical and Electronic Engineers), Организация международных стандартов ISO (International Organization for Standardization).
Как правило, при создании языка выпускается частный стандарт, определяемый разработчиками языка. Так как в программировании практически всегда используются зарубежные языки программирования (Паскаль, Бейсик, С++, PHP и т.д.), то большинство стандартов являются медународными. Языки программирования, основанные на русском языке, практически не распространены ни в России, ни за рубежом. Отечественные стандарты в основном регулируют документирование разработок программ, а не сами языки, их семантику, синтаксис. В этом проявляется главное отличие стандартов.
Список использованной литературы
-
- Автоматизированные информационные системы, базы и банки данных. Вводный курс: Учебное пособие. - М.: Гелиос АРВ, 2010. - 368 с.
- Вигерс Карл, Разработка требований к программному обеспечению, Пер, с англ. - М.:Издательско-торговый дом "Русская Редакция", 2011. -576с.
- Гвоздева Т. В., Б. А. Баллод, Проектирование информационных систем. - М: Феникс, 2012. - 512с.
- Голицына О. Л., И. И. Попов, Н. В. Максимов, Т. Л. Партыка, Информационные технологии. – М: Издательство Инфра-М, 2012 г. - 608с.
- Емельянова Н. З., Партыка Т. Л., И. И. Попов, Проектирование информационных систем. – М: Форум, 2012. – 432с.
- Илюшечкин В. М. Основы использования и проектирования баз данных. – М: Издательство Юрайт, 2010. - 224с.
- Пирогов В. Ю., Информационные системы и базы данных. М, Организация и проектирование, Издательство: БХВ-Петербург, 2012 г.528 стр.
- Предметно-ориентированные экономические информационные системы.: Финансы и статистика, 2010 г.- 224 стр.
Приложение
Листинг разработанной программы
Главный модуль приложения
//---------------------------------------------------------------------------
// подключение модулей и задания пространства имен
#include <vcl.h>
#include <string.h>
#pragma hdrstop
#include "main.h"
#include "parampoisk.h"
#include "DBDirectoryTemplate.h"
#include "add.h"
#include "ChildTemlate.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#include "add.h"
// описание основных классов (форм)
Tmainclientsform *mainclientsform;
TDBDirectoryTemplateForm *DirectoryForm;
Taddforms *ProsmForm;
Taddforms *ProsmForm1;
Tparampoiskform *Poisk;
TChildTemplateForm *ChildTemplateForm;
int nomer_poisk;
bool flag1,flag2;
bool mainflag;
int kodzayav, koduch, kodvid, kodzal, kodob, kodsod, otvup, otgot,a, kodzaka;
//---------------------------------------------------------------------------
__fastcall Tmainclientsform::Tmainclientsform(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void BuildGridDatabaseDirectoryItem(String sCaption, TDataSource *ds,
TForm *AFormName,String AMDIChildName )
// генерация форм для отображения справочников */
{ int i;
for ( int i = AFormName->MDIChildCount-1; i>=0; i--)
{
if (AFormName->MDIChildren[i]->Name == AMDIChildName)
{
AFormName->MDIChildren[i]->Free();
} }
DirectoryForm= new TDBDirectoryTemplateForm(Application);
DirectoryForm->TableDBGrid->DataSource=ds;
DirectoryForm->Top=0;
DirectoryForm->Left=0;
DirectoryForm->Width=700;
DirectoryForm->Height=200;
DirectoryForm->Caption=sCaption;
}
void BuildaddForms(String sCaption, TDataSource *ds,
TForm *AFormName,String AMDIChildName )
{ int i;
// генерация формы для просмотра базы данных и добавления записей
for ( int i = AFormName->MDIChildCount-1; i>=0; i--)
{
if (AFormName->MDIChildren[i]->Name == AMDIChildName)
{
AFormName->MDIChildren[i]->Free();
} }
ProsmForm= new Taddforms(Application);
ProsmForm->Top=230;
ProsmForm->Left=0;
ProsmForm->Width=700;
ProsmForm->Height=200;
ProsmForm->Caption=sCaption;
}
void BuildaddForms1(String sCaption, TDataSource *ds,
TForm *AFormName,String AMDIChildName )
{ int i;
// генерация формы для просмотра базы данных и добавления записей
for ( int i = AFormName->MDIChildCount-1; i>=0; i--)
{
if (AFormName->MDIChildren[i]->Name == AMDIChildName)
{
AFormName->MDIChildren[i]->Free();
} }
ProsmForm1= new Taddforms(Application);
ProsmForm1->Top=230;
ProsmForm1->Left=0;
ProsmForm1->Width=700;
ProsmForm1->Height=200;
ProsmForm1->Caption=sCaption;
}
void BuildPoiskForms(String sCaption, TDataSource *ds,
TForm *AFormName,String AMDIChildName )
{ int i;
/*
формирование формы для настройки параметров поиска
*/
for ( int i = AFormName->MDIChildCount-1; i>=0; i--)
{
if (AFormName->MDIChildren[i]->Name == AMDIChildName)
{
AFormName->MDIChildren[i]->Free();
// Break;
} }
Poisk= new Tparampoiskform(Application);
Poisk->Top=50;
Poisk->Left=400;
Poisk->Width=400;
Poisk->Height=400;
Poisk->Caption=sCaption;
}
void __fastcall Tmainclientsform::N3Click(TObject *Sender)