При управлении производственными строительными системами выделяют структуру объекта управления, структуру задач управления и структуру органов выполнения.
Структура объектов управления должна отражать производственно-технологические и производственно-транспортные элементы строительной системы, а также их взаимосвязи. В строительном производстве, как в любом другом виде материального производства, основным процессом, формирующим структуру объекта управления, является производственный. Производственный процесс — это совокупность взаимосвязанных, рациональных, целенаправленных действий, обеспечивающих возведение или обновление (реконструкцию, модернизацию) строительных объектов. Все разнообразие строительных процессов можно подразделить на три группы:
— основные технологические процессы;
— вспомогательные технологические процессы;
— обслуживающие процессы.
Совокупность этих процессов составляет производственный строительный процесс, который и является объектом управления.
3 Технология ActiveX Data Objects (ADO) в Delphi
3.1 Концепция ADO
Окрыленная успехом технологии COM, Microsoft в середине девяностых приступила к замене технологии ODBC технологией OLEDB. Однако OLEDB представляет интерфейс системного уровня и предназначена для использования, в первую очередь, системными программистами. Она чрезвычайно сложна и требует от программистов досконального знания устройства операционной системы, что существенно снижает продуктивность работы. С целью облегчить жизнь прикладным программистам Microsoft создала для работы с OLEDB интерфейс высокого уровня, называемый ActiveXDataObject (ADO), ориентированный на использование в прикладных программах.
Начиная с середины 80-х программисты баз данных искали пути к независимости от технологий баз данных. Идея в том, чтобы использовать для доступа к различным источникам данных единый API, что освободило бы разработчиков от зависимости от конкретного процессора баз данных и дало бы возможность быстро приспосабливаться к изменению требований. Поставщики программного обеспечения разработали несколько решений этой проблемы, два наиболее значимых — открытая спецификация доступа к базам данных фирмы Microsoft, OpenDatabaseConnectivity (ODBC) и независимый прикладной программный интерфейс фирмы Borland, IndependentDatabaseApplicationProgrammingInterface (IDAPI), более известный как процессор баз данных Borland, BorlandDatabaseEngine (BDE). Технология ADO во многом похожа на BDE. В конце концов, они обе проектировались для решения схожих проблем. Обе технологии поддерживают навигацию по наборам данных, оперирование с наборами данных, обработку транзакций и кэшированные обновления (в ADO они называются пакетными обновлениями), так что концепции и способы работы с ADO весьма похожи на работу с BDE. Несмотря на это, существуют и отличия. ADO — более новая технология, благодаря чему она лучше, чем BDE, отвечает требованиям сегодняшнего дня и не несет с собой множество устаревших обременений. Самое существенное, возможно, то, что ADO более широко интерпретирует понятие «данные». BDE работает только с «прямоугольными» данными, то есть данными, представленными в виде строк и столбцов, что идеально при работе с базами данных. При помощи ADO мы также можем обращаться к таким данным, но, кроме того, существует возможность работы и с непрямоугольными данными, такими как представляющие каталоги структуры, документы, web-узлы и электронная почта.
3.2 Базовые объекты ADO
Базовых объектов семь: Connection, Recordset, Command, Parameter, Field, Error и Property. Компоненты ADO в палитре компонентов Delphi представляют собой надстройки над базовыми объектами, экспонируя большинство их свойств, методов и событий в привычном для Delphi виде.
Базовые объекты обычно сопровождаются коллекциями связанных с ними объекты. Например, с Connection может быть связан один или несколько объектов Еrror, фиксирующих ошибки установления связи. С Recordset - набор объектов Field, каждый из которых определяет единственное поле результирующего набора данных. С Command - один или несколько объектов Parameter, конкретизирующих выполнение метода Execute этого объекта, и коллекция объектов Error и т.д. В связи с этим говорят об основных (Connection, Recordset, Command) и вспомогательных (Error, Field, Parameter, Property) объектах ADO.
Connection
Объект Connection предназначен для установления соединения с данными - это его главная задача. Кроме того, объект обеспечивает механизм транзакций. С объектом связан набор объектов Error, в котором фиксируются все ошибки, связанные с работой Connection. Кроме того, на него может ссылаться произвольное количество объектов Command и Recordset. В этом случае Connection управляет транзакциями этих объектов.
Recordset
Объект Recordset представляет собой текущий набор данных. Он может быть получен только после выполнения метода Execute какого-либо объекта Command. С объектом автоматически связывается набор объектов Field, в которых описываются все поля НД. Recordset способен хранить нужные записи, перемещаться по ним, добавлять, уничтожать и редактировать записи как в обычном режиме (при одновременном изменении физических ТБД), так и в пакетном режиме (т.е. при кэшировании данных). При создании объекта автоматически создается и связанный с ним курсор, обеспечивающий просмотр, редактирование и изменение записей.
Command
С помощью объекта Command пользователь может выполнить над данными любую SQL-команду. С ним может быть связан набор объектов Parameter, в котором описываются соответствующие параметры, необходимые для выполнения запроса. Характерной особенностью объекта является возможность асинхронного выполнения связанной с ним команды. При обнаружении ошибки с объектом связывается своя коллекция объектов Error.
Parameter
Объект Parameter определяет единственный параметр, который будет использоваться при выполнении метода Execute объекта Command - его тип, размер и использование (входной, выходной, входной и выходной или только для чтения). При необходимости с Command можно связать коллекцию объектов Parameter для указания множества параметров.
Error
Коллекция объектов Error хранит все ошибки, связанные с работой остальных объектов и, прежде всего, Connection, Command и Recordset.
Field
Этот объект хранит всю необходимую информацию об одном поле НД. Поскольку обычно НД содержит несколько полей, с объектом Recordset связана коллекция объектов Field. С любым полем Field можно связать произвольную коллекцию объектов Property, определяющих индивидуальные характеристики поля.
Property
Объект Property может быть связан с любым другим объектом ADO, кроме объектов Connection и Error. Он может хранить как статические, так и динамические свойства. Статических (т.е. заранее заданных) свойств у объекта всего четыре: Name, Type, Value, Attributes. Остальные свойства - динамически и создаются в ходе выполнения программы. В объекте Property задаются некоторые индивидуальные характеристики связанного с ним объекта ADO.
3.3 Компоненты Delphi для поддержки ADO
На основе технологии ADO в Delphi созданы соответствующие компоненты-наборы TADOTable, TADOQuery, TADOStoredProc , повторяющие в функциональном отношении компоненты TTable, TQuery, TstoredProc, но не требующие развертывания и настройки на клиентской машине BDE.
Основным достоинством ADO является ее естественная ориентация на создание «облегченного» клиента. На машине сервера данных (это может быть файловый сервер в рамках файл/серверной технологии или машина с сервером данных - в технологии клиент/сервер) устанавливается так называемый провайдер данных - некоторая надстройка над специальной технологией OLEDB, «понимающая» запросы объектов ADO и «умеющая» переводить эти запросы в нужные действия с данными. Взаимодействие компонентов ADO и провайдера осуществляется на основе универсальной для Windows технологии ActiveX, причем провайдер реализуется как СОМ-сервер, а ADO-компоненты - как COM-клиенты. На машине сервера создается и размещается источник данных. В случае файл/серверных систем отдельные таблицы типа dBASE, FoxPro, Paradox и т.п. должны управляться соответствующим ODBC-драйвером,а в роли провайдера используется MicrosoftOLEDBProviderforODBCdrivers. Если по каким-либо причинам не найден нужный драйвер файл/серверные таблицы можно перенести в формат MSAccess. На их основе создается единый файл, содержащий все необходимые таблицы, индексы, хранимые процедуры и прочие элементы БД. Такой файл управляется машиной баз данных MicrosoftJet 4.0 DatabaseEngine, а в роли провайдера используется MicrosoftJet 4.0 OLEDBProvider. Если используется промышленный сервер данных Oracle или MSSQLServer, данные не нуждаются в какой-либо предварительной подготовке, а в роли провайдера используется соответственно MicrosoftOLEDBProviderforOracle или MicrosoftOLEDBProviderforSQLServer. Нетрудно обнаружить и явный недостаток такой технологии: ADO не может использоваться, если для соответствующей структуры данных (в частности, для БД многих популярных серверов - InterBase, Informix, DB2 и пр. не создан нужный провайдер или ODBC драйвер (однако уже существует ODBC драйвер для InterBase – прим. ред.)).
Схема связи с объектом ADO в Delphi
На машине клиента располагаются связные компоненты TADOConnection и компоненты-наборы данных TADOTable, TADOQuery, TADOStoredProc, а также не показанные на рисунке компоненты-наборы TADODataSet и командные компоненты TADOCommand. Каждый из этих компонентов может связываться с провайдером данных либо с помощью связного компонента TADOConnection, либо минуя его и используя собственное свойство ConnectionString. Таким образом, TADOConnection играет роль концентратора соединений с источником данных компонентов-наборов и в этом смысле подобен компоненту TDatabase в традиционной архитектуре с BDE.Компоненты-наборы TADODataSet в функциональном плане повторяют свойства уже известных из предыдущих версий Delphi компонентов TClientDataSet технологии MIDAS. Командные компоненты TADOCommand предназначены для реализации запросов на языке управления данными DDL (DataDefinitionLanguage), т.е. для реализации SQL-запросов, которые не возвращают данные (запросы типа CREATE, DROP, UPDATE и т.п.). Специальный компонент RDSConnection (не показан на рисунке) создан для упрощения связи с MSInternetExplorer и предназначен для разработки интранет-приложений. Компоненты-наборы с помощью хорошо известных по предыдущим версиям Delphi компонентов-источников TDataSource и визуализирующих компонентов TDBGrid, TDBMemo, TDBEdit и т.п. обеспечивают необходимый интерфейс с пользователем программы.
Литература
1. Характеристика Башнефтепромстрой.
2. Структура и описание подразделений.
3. ADO технологии. Компоненты ADO в Borland Delphi 5