Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диплом ИПОВС 2003 / Пояснительная запискаFinalVersion.doc
Скачиваний:
57
Добавлен:
16.04.2013
Размер:
1.28 Mб
Скачать
    1. Работа с базами данных вDelphi

Для создания системы, мне потребовалось создать базу данных. Кроме того, система должна была подразумевать возможность дальнейшей интеграции с существующими программными продуктами, использующими базы данных. Поэтому, мне необходимо было иметь представление о принципах работы баз данных и способах взаимодействия с ними в среде Delphi.

Для хранения данных был выбран реляционный тип базы данных. Это связано с тем, что этот тип БД позволяет удобно работать с большими объёмами данных, его поддерживают многие современные СУБД. И опять же нельзя было забывать о интеграции с существующими системами, которые используют именно этот тип баз данных.

Delphiсодержит целый ряд визуальных компонентов для работы с базами данных, поддерживающих самые разные технологии. В данной системе были использованы компоненты, пользующиеся технологиейADO. Эта технология позволяет легко подключаться к базам данных, например через драйверODBC, который имеют все современные базы данных. Соответственно, для изменения базы данных, к которой подключается программа, нужно всего лишь изменить настройки компонента.

Для создания базы данных не была использована стандартная утилита, входящая в Delphi–DatabaseDesktop. Это связано с неудобным способом хранения таблиц, принятом в этой программе. Кроме того, хотелось избежать установкиBDEна компьютеры клиента. Поэтому разработка базы данных проводилась в средеMicrosoftAccess, а программа подключалась к ней через драйверODBC. Это доказало независимость системы от выбора базы данных, что гарантирует лёгкий переход к использованию других баз после интеграции с внешними программами.

При работе использовались компоненты ADOConnection и ADOQuery. Эти компоненты предоставляют доступ к базе данных и возможность производить любые действия, изменяя свойство SQLкомпонентаADOQueryи выполняя методExecSQL. В модуле наполнения базы данных были использованы компоненты визуальной работы с базой данных. ЭтоDBGrid,DBNavigator,DBTextиDBEdit.

    1. Использование компонентовAdo

Расскажу поподробнее про технологию ADO, которая использовалась для подключения к базе данных.ADO(ActiveXDataObjects) является частью универсального механизма доступа к данным фирмы Microsoft (Microsoft Universal Data Access), который позволяет осуществить доступ как к реляционным, так и к нереляционным источникам данных, таким как файловая система, данные электронной почты, многомерные хранилища данных и др. Универсальный механизм доступа к данным (Universal Data Access) являет собой стратегию предоставления доступа к любому типу информации предприятия. Он обеспечивает высокопроизводительный доступ к различным источникам информации (включая реляционные и нереляционные данные), в том числе к данным, хранящимся на мэйнфреймах, данным электронной почты и файловой системы, текстовым, графическим и географическим данным и др.

Для многих современных приложений, использующих данные, характерно подобное разнообразие их источников. Более того, вполне очевидно, что могут появляться новые форматы данных и способы их хранения, поэтому разумным требованием к универсальному механизму доступа к данным была бы возможность поддержки не только существующих в настоящее время форматов и источников данных, но и форматов данных, которые будут созданы в будущем.

Назначение универсального механизма доступа к данным фирмы Microsoft — предоставить доступ к перечисленным источникам данных с помощью единой модели доступа к данным.

В настоящее время универсальный механизм доступа к данным фирмы Microsoft поддерживает все наиболее популярные настольные и серверные СУБД.

Microsoft ActiveX Data Objects (ADO) представляет собой программный интерфейс для доступа к данным из приложений. С точки зрения программирования ADO и его расширения являются упрощенным высокоуровневым объектно-ориентированным интерфейсом к OLE DB.

OLE DB — это низкоуровневый интерфейс для доступа к данным. ADO использует OLE DB, но можно использовать OLE DB и напрямую, минуя ADO.

Open Database Connectivity (ODBC) - стандартный способ доступа к реляционным данным. Этот компонент универсального механизма доступа к данным оставлен с целью обеспечения совместимости с прежними версиями программного обеспечения. В современных приложениях применению ODBC-драйверов предпочитают использование OLE DB-провайдеров.

Рассмотрим вышеупомянутые технологии поподробнее.

OLE DB представляет собой программный интерфейс для доступа к различным источникам данных, таким как реляционные и нереляционные данные, текстовые, графические и географические данные, архивы электронных писем, файловая система, бизнес-объекты. В спецификации OLE DB определен набор COM-интерфейсов (COM, Component Object Model, компонентная модель объектов Microsoft, являющаяся составной частью 32-разрядных версий Windows), инкапсулирующих различные сервисы управления данными и предоставляющих однотипный доступ к перечисленным выше данным. Эти интерфейсы могут быть использованы в приложениях, предоставляющих доступ к данным.

На самом верхнем уровне можно отметить три главных компонента OLE DB: потребители (consumers), провайдеры данных (data providers) и сервисные компоненты (service components).

Любой компонент программного обеспечения, применяющий интерфейсы OLE DB, является потребителем. Это может быть какое-либо офисное приложение или иное бизнес-приложение, средство разработки типа Visual Basic или Delphi либо даже COM-объекты для доступа к данным, применяющие интерфейсы OLE DB. Потребители могут обращаться к данным посредством ActiveX Data Objects, представляющих собой высокоуровневый интерфейс к OLE DB, или применять OLE DB непосредственно, используя OLE DB-провайдер.

Провайдер — это часть программного обеспечения, в которой реализованы интерфейсы OLE DB. С точки зрения OLE DB существуют два типа OLE DB-провайдеров — провайдеры данных и сервисные компоненты.

Провайдер данных — это компонент программного обеспечения, манипулирующий данными. Он располагается между потребителем данных и базой данных. В OLE DB все провайдеры представляют данные в табличном формате (аналогичном тому, в котором хранятся данные в реляционных СУБД и файлах электронных таблиц), в виде виртуальных таблиц. Провайдер данных выполняет следующие функции:

  • получение от потребителя запросов на получение или модификацию данных;

  • получение данных из базы данных или их модификацию в базе данных;

  • возвращение данных потребителю.

Примером провайдеров данных является провайдер Microsoft Jet 4.0 OLE DB Provider, который используется для доступа к данным Microsoft Access, а также к данным I-ISAM (Installable Indexed Sequential Access Method), файлам рабочих книг Excel, хранилищ данных Microsoft Outlook и Microsoft Exchange, таблиц dBase и Paradox, текстовым файлам, файлам в формате HTML и др. Еще один пример OLE DB-провайдера — Microsoft OLE DB Provider for SQL Server, применяемый для доступа к базам данных Microsoft SQL Server 6.5 и 7.0.

Провайдер сервисов (или сервисный компонент) реализует расширенную функциональность, не поддерживаемую обычными провайдерами данных, например сортировку и фильтрацию данных, обработку транзакций и SQL-запросов, управление курсором и др. Сервисный компонент может обращаться к хранилищу данных непосредственно или с помощью соответствующего провайдера данных — в этом случае провайдер сервисов является одновременно и провайдером, и потребителем. Например, сервисные компоненты, такие как Microsoft Cursor Service for OLE DB и Microsoft Data Shaping Service for OLE DB, могут использоваться совместно с провайдерами данных OLE DB для расширения их функциональности.

С рядом продуктов Microsoftпоставляется наборMDAC(MicrosoftDataAccessComponents), в который входит ряд провайдеров.

Таблица 4. Список провайдеров, доступных в MDAC

Провайдер

Описание

Microsoft OLE DB Provider for ODBC Drivers

Позволяет осуществить доступ к любому ODBC-источнику

Microsoft Jet 4.0 OLE DB Provider

Применяется для доступа к данным Microsoft Access и некоторых других СУБД

Microsoft OLE DB Provider for SQL Server

Используется для доступа к данным Microsoft SQL Server

Microsoft OLE DB Provider for Oracle

Используется для доступа к данным Oracle

Microsoft OLE DB Provider for Internet Publishing

Используется для доступа к Web-серверам и ресурсам, обслуживаемым Microsoft FrontPage или Microsoft Internet Information Server

OLE DB Provider for Microsoft Directory Services

Применяется для доступа к гетерогенным службам каталогов с помощью Microsoft Active Directory Service Interfaces (ADSI)

Microsoft OLE DB Provider for Microsoft Index Server

Предоставляет доступ «только для чтения» к файловой системе и данным Web, индексированным с помощью Microsoft Indexing Service

Microsoft OLE DB Simple Provider

Используется для доступа к текстовым файлам

Cursor Service for OLE DB

Расширяет функциональность курсора

Data Shaping Service for OLE DB

Применяется для создания связей между наборами данных и получения иерархических наборов данных

OLE DB Persistence Provider

Используется для сохранения наборов данных в форматах ADTG (Advanced Data Table Gram) или XML (eXtensible Markup Language)

OLE DB Remoting Provider

Позволяет обращаться к провайдерам данных на удаленных компьютерах

Microsoft OLE DB Provider for OLAP Services

Применяется с расширением ADO Multi-Dimensional (ADO MD) для доступа к многомерным данным, созданным с помощью Microsoft SQL Server 7.0 OLAP Services

ADO представляет собой высокоуровневый программный интерфейс для доступа к OLEDB-интерфейсам. Он позволяет манипулировать данными с помощью любыхOLEDB-провайдеров, как входящих в составMicrosoftDataAccessComponentsнекоторых других продуктовMicrosoft, так и произведенных сторонними производителями.ADOсодержит набор объектов, используемых для соединения с источником данных, для чтения, добавления, удаления и модификации данных.

Объект ADO Connection применяется для установки связи с источником данных. Он представляет единственную сессию. Этот объект позволяет изменить параметры соединения с базой данных, а также начать или завершить транзакцию. Используя объект Connection, мы можем выполнять команды (например, SQL-запросы) с помощью метода Execute. Если команда возвращает набор данных, автоматически создается объект Recordset, который возвращается в результате выполнения этого метода.

Объект Errorиспользуется для получения сведений об ошибках, возникающих в процессе выполнения.

Объект Commandпредставляет собой команду, которую можно выполнить в источнике данных. Команда может содержатьSQL-предложение или вызов хранимой процедуры. В последнем случае для определения параметров процедуры может быть использована коллекцияParametersобъектаCommand.

Объект Recordset - это набор записей, полученных из источника данных, и может быть использован для добавления, удаления, изменения, просмотра записей. Данный объект может быть открыт непосредственно или создан с помощью объектовConnectionилиCommand.

Объект Field - это колонка в наборе данных, представленных объектом Recordset. Он может быть использован для получения значений конкретного поля, его модификации, извлечения метаданных, таких как имя колонки и тип данных.

Библиотека ADO2.5, являющаяся составной частью операционной системыWindows2000, содержит два новых объекта -RecordиStream.

Объект Recordпредставляет одну запись внутри объектаRecordsetи может быть использован для работы с гетерогенными и иерархическими данными.

Объект Streamпредставляет двоичные данные, связанные с объектомRecord. Например, если объектRecordпредставляет собой файл, то его объектStreamдолжен содержать данные внутри этого файла.