Разработка приложений с помощью ADO, RDO, DAO
Технологии доступа к данным Microsoft: DAO, RDO, ADO. Различие маршрутов приложений в ADO; использование DAO для доступа к реляционным БД, объектная модель. Разработка фрагмента информационной системы "Аптека" в среде Delphi с применением технологии ADO.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 02.06.2013 |
Размер файла | 228,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНОБРНАУКИ РОССИИ
федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
ФГБОУ ВПО «ИГУ»
Иркутский государственный университет
КУРСОВАЯ РАБОТА
Разработка приложений с помощью ADO, RDO, DAO
Студентки 2 курса
Коноровской Кристины Игоревны
Научный руководитель:
к.и.н., доцент Тюрнев А.С.
Иркутск, 2013
ВВЕДЕНИЕ:
В эпоху глобализации слово «информация» приобрело новые оттенки значения. Теперь это является ресурсом, у которого есть стоимость. Таким образом, научно-технический прогресс и экономика вступают в синтез. Экономика не развивается без НТП, который, в свою очередь, нуждается в поддержке со стороны рынка.
В наше время важнейшим условием выживания фирмы при нарастающем объеме экономических отношений и конкуренции является владение информацией, благодаря которой предприятие может анализировать и прогнозировать свою деятельность и деятельность конкурентов, воздействовать на потребителя, налаживать контакты с поставщиками, проводить мониторинг рынка и т.д.
Во всех сферах деятельности предприятия особое место занимают информационные технологии, помогающие систематизировать информацию и манипулировать ею. Одной из наиболее распространенных информационных технологий на сегодняшний день являются базы данных (далее БД), позволяющие хранить, обрабатывать и быстро получать огромное количество информации. Обширные возможности по работе с БД предоставляют технологии ADO (ActiveX Data Objects), RDO DAO
Цель: разработка фрагмента информационной системы «Аптека» в среде Delphi с применением технологии ADO.
Задачи:
- анализ предметной области;
- изучение основных понятий, определений, свойств баз данных и систем управления ими (СУБД);
- история, хронология;
Глава 1. Технологии доступа к данным Microsoft
На заре эпохи баз данных разработчикам достаточно было знать только те базы данных, которые они использовали. Но базы данных и их технологии развивались довольно быстро -- от реляционных баз данных к нереляционным информационным хранилищам, таким, как электронная почта и файловые системы. Развитие баз данных сейчас идет в ногу со стремительными изменениями в технике. А с появлением клиент-серверных и многоуровневых архитектур разработчикам уже приходится разбираться во всем многообразии технологий баз данных. Большинство разработчиков потратили годы на изучение ODBC, DAO, RDO, OLE DB, ADO и RDS. К настоящему моменту Microsoft представила .NET Framework и вместе с ней новую технологию баз данных ADO.NET.
1.1 ADO (ActiveX Data Objects)
ADO (от англ. ActiveX Data Objects -- «объекты данных ActiveX») -- интерфейс программирования приложений для доступа к данным, разработанный компанией Microsoft (MS Access, MS SQL Server) и основанный на технологии компонентов ActiveX. ADO позволяет представлять данные из разнообразных источников (реляционных баз данных, текстовых файлов и т. д.) в объектно-ориентированном виде.
Описание ADO
Объектная модель ADO состоит из следующих объектов высокого уровня и семейств объектов:
· Connection (представляет подключение к удалённому источнику данных)
· Recordset (представляет набор строк, полученный от источника данных)
· Command (используется для выполнения команд и SQL-запросов с параметрами)
· Record (может представлять одну запись объекта Recordset или же иерархическую структуру, состоящую из текстовых данных)
· Stream (используется для чтения и записи потоковых данных, например, документов XML или двоичных объектов)
· Errors (представляет ошибки)
· Fields (представляет столбцы таблицы базы данных)
· Parameters (представляет набор параметров SQL-инструкции)
· Properties (представляет набор свойств объекта)
Компоненты ADO используются в языках высокого уровня, таких как VBScript в ASP, JScript в WSH, Visual Basic, Delphi.
Последней версией ADO является версия 2.8. В рамках платформы Microsoft .NET интерфейс ADO заменён ADO.NET.
ADO (ActiveX Data Objects) -- объектно-ориентированная технология доступа к данным. ADO позволяет клиентским приложениям работать с сервером баз данных через единый интерфейс, предоставляемый провайдером. ADO состоит из трех основных элементов: ADO, ADO MD и ADOX.
Непосредственно ADO (в которое входит RDS, Remote Data Service, служба работы с удаленными данными) предоставляет основные функции для работы с данными. В ADO входит все необходимое для создания приложений типа клиент-сервер и web-приложений. RDS, которая входит в состав ADO, позволяет перемещать данные с сервера на клиентское приложение, обрабатывать их и возвращать результат на сервер.
ActiveX Data Objects Multidimensional (ADO MD) предоставляет легкий и удобный доступ для многомерного представления данных в языках высокого уровня. ADO MD расширяет функциональность ADO, включая в него объекты многомерных данных, такие как объекты CubeDef и Cellset. Подобно ADO, в ADO MD используется предоставляемый провайдером доступ к данных, причем провайдер должен являться провайдером многомерных данных (MDP) в отличии от обычных провайдеров (TDP), предоставляющих информацию в табличном виде.
Расширение ADO Extensions for Data Defination Language and Security (ADOX) расширяет возможности ADO до манипулированию схемой данных и управлением безопасностью данных. ADOX позволяет работать с такими элементами, как таблицы и процедуры, управлять группами и пользователями, а также доступом пользователей к объектам.
Есть три основных компонента для доступа к данным. OLE DB является низкоуровневым и высокопроизводительным интерфейсом к различным источникам данных. ADO является высокоуровневой объектной оболочкой к OLE DB. И наконец, ODBC является альтернативным низкоуровневым и высокопроизводительным интерфейсом для работы с реляционными источниками данных.
ADO является посредником между клиентским приложением и низкоуровневым интерфейсом OLE DB и позволяет разработчику абстрагироваться от специфики источника данных и провайдера.
ADO
ADO работает с объектами DAO и RDO, а также поддерживает более простые модели, чем DAO и RDO (хотя с избыточной функциональностью, так что можно выполнить операцию несколькими способами). Объектная иерархия в ADO более однородная, чем в DAO. ADO содержит несколько встроенных объектов, которые упрощают доступ к данным из информационных хранилищ.
На Рисунке 6 показано несколько способов, с помощью которых приложение связывается с базой данных. Например, VB-программист может использовать ADO для соединения приложения с провайдером OLE DB. Если база данных не поддерживает OLE DB, приложение может задействовать ODBC. Программист на Visual C++ может применять ADO или соединяться напрямую через OLE DB.
Рисунок 1. Различие маршрутов приложений в ADO
1.2 DAO (Data Access Objects)
DAO (Data Access Objects) является первым объектно-ориентированным интерфейсом, который работал с Microsoft Jet (используемым Microsoft Access) и позволял программисту подключаться напрямую к таблицам Access (или к остальным БД через ODBC). DAO считается наиболее удобным средством для однопользовательских систем и небольших разработок.
Последней поддерживаемой версия DAO является версия 3.6, в которой добавлена (по сравнению с версией 3.5x) поддержка Unicode и поддержка провайдера Jet версии 4 (и, соответственно, поддержка формата Access XP).
DAO поддерживает два различных окружения БД (или рабочих пространства, workspaces); Microsoft Jet и ODBCDirect.
Рабочее пространство Microsoft Jet позволяет вам получить доступ к базам данных Microsoft Jet (используемым Microsoft Access), к источникам данных ODBC, которые позволяют подключаться через Microsoft Jet, а также к установленным источникам данных ISAM всех остальных форматов, например Paradox или Lotus 1-2-3. Ядро Microsoft Jet позволяет использовать базы данных MDB или прочие настольные БД ISAM и предоставляет такие возможности, как объединение данных из различных форматов БД.
Рабочее пространство ODBCDirect позволяет вам получить доступ к СУБД через ODBC без загрузки и использования ядра Microsoft Jet. ODBCDirect предоставляет возможность выполнять запросы или хранимые процедуры на сервере, а так же использовать специфические возможности ODBC, такие как пакетное обновление и асинхронное исполнение запросов.
Рисунок 2. Использование DAO для доступа к базе данных
ODBC использует низкоуровневый интерфейс, поэтому программисты на С и С++ реально задействуют все преимущества технологии ODBC. Программисты на Visual Basic (VB) не имеют простого доступа к интерфейсу ODBC. До появления VB 6.0 разработчики применяли высокоуровневый доступ к данным. На Рисунке 2 показано, как программисты VB используют технологию Data Access Object (DAO) для доступа к данным.
Объектная модель DAO
Объектная модель DAO зависит от используемого рабочего пространства; различия касаются в основном возможности управлять пользователями и метаинформации (структуры БД) в Jet. Обе схемы изображены на рисунках ниже; голубым цветом отмечены объекты, желтым показаны коллекции. В данной главе будут рассмотрены лишь наиболее часто используемые объекты.
Рис. 3 Объектная модель DAO
Корневым объектом в DAO является ядро DAO DBEngine. В нем содержится две коллекции; Errors (коллекция ошибок) и Workspaces (рабочие пространства).
Любые операции, связанные с объектами DAO, могут вызвать одну или несколько ошибок. В случае возникновения ошибок они помещаются в коллекцию Errors. Ошибки поступают по мере возникновения, т.е. самая последняя ошибка является последним элементом коллекции; она же соответствует объекту Err в VBA. Коллекция Errors не содержит методов Append и Delete, поэтому ошибки не могут быть добавлены в коллекцию иным способом.
Каждый элемент Error коллекции Errors описывает одну ошибку. К примеру, если при открытии набора данных (Recordset) через ODBC произошла ошибка, в коллекции Errors может находится несколько ошибок, сгенерированных различными слоями ODBC; первая ошибка будет соответствовать самой нижнеуровневой ошибке ODBC.
Коллекция Workspaces содержит активные и нескрытые объекты Workspace - рабочее пространство DAO. Объект Workspace позволяет вам управлять сессией текущего соединения (управлять группами, пользователями, базами данных и подключениями).
Когда вы впервые используете объект Workspace, вы автоматически создаете "окружение по умолчанию" (default workspace), которое является DBEngine.Workspaces(0). Это рабочее пространство имеет параметры Name и UserName равными "#Default Workspace#" и "Admin" соответственно.
Объект Workspace определяет именованную сессию пользователя. Он содержит открытые базы данных, предоставляет механизмы для проведения транзакций, а также методы для управления базами данных, пользователями и группами.
Чаще всего разрабатывается приложение, работающее только с одной БД в один момент времени. И как следствие, чаще всего используют объект Database коллекции Databases (входящей в текущий Workspace). Для работы с базой данных у объекта есть методы CreateDatabase и OpenDatabase (соответственно, создание БД и открытие БД). Синтаксис этих операторов:
Set database = workspace.CreateDatabase (dbname, locale, options)
Set database = workspace.OpenDatabase (dbname, options, read-only,
connect)
Здесь database - объектная переменная, представляющая объект Database, workspace - объектная переменная, представляющая существующий Workspace, в котором размещается БД, если workspace не указан, то функция создаст рабочее пространство по умолчанию.
Синтаксис остальных операторов различается в зависимости от типа БД и от используемого рабочего пространства. В случае Jet и БД Access (mdb) это путь и имя БД, в других случаях строка, зависящая от источника данных. Остальные аргументы определяют параметры открываемой/создаваемой БД и указывают флаги, с которыми открывается БД. Аргумент connect передает различную информацию, необходимую при подключении, например, пароль БД.
Кроме того, у объекта Workspace есть такие важные методы, как BeginTrans, CommitTrans, и Rollback, позволяющие начать транзакцию, завершить транзакцию и откатить транзакцию соответственно.
Объект Database является основным, с которым работает разработчик. Он содержит ряд объектов (коллекций), методов и свойств. Коллекции, из которых состоит Database, это: TableDefs, Containers, QueryDefs, Recordsets и Relations. Коллекция Relations определяет отношения между объектами БД (внешние ключи и связи таблиц), TableDefs является коллекцией описаний таблиц, хранящихся в БД или связанных с ней, а QueryDefs -- коллекцией описаний сохраненных запросов, хранящихся в БД (для Jet) либо временных запросов (ODBCDirect). Коллекция Recordsets возвращает все открытые наборы данных в Database (Jet) или Connection (ODBCDirect). Эта коллекция состоит из объектов Recordset, которые автоматически добавляются в коллекцию, когда вы создаете набор данных каким-либо способом, и удаляются, когда вы закрываете набор данных. Коллекция Containers содержит контейнеры, в которых может храниться сохраненная база данных, таблица или запрос.
Наиболее используемыми методами объекта Database являются следующие: Execute для выполнения запросов; Connect для установления соединения с источником данных ODBC; QueryTimeout для установки величины таймаута при выполнении запросов; RecordsAffected для получения количества записей, к которым был применен запрос; OpenRecordset для выполнения запроса с целью возвратить набор данных; Version, позволяющий узнать версию ядра БД. Кроме того, при использовании Jet есть методы, позволяющие создать новую таблицу, новое свойство, новый запрос, новую связь. Также имеются методы, позволяющие создавать и синхронизировать реплики БД.
Если БД содержит связи с внешними источниками данных, то при открытии БД связь с внешним источником данных не устанавливается автоматически. Для этого надо сослаться на объект TableDef или открыть набор данных.
Объект TableDef является объектом, который содержит описание таблицы или внешней связанной таблицы (только в рабочем пространстве Jet). Этот объект позволяет манипулировать структурой таблицы - изменять поля (коллекция Fields) и индексы (коллекция Indexes). Кроме того, объект содержит метод OpenRecordset, позволяющий открыть указанную таблицу как источник данных.
Объект QueryDef похож на TableDef, но он представляет собой описание сохраненного (в Jet) или временного (в ODBCDirect) запроса и содержит не поля и индексы, а выводимые поля (коллекция Fields) и параметры, передаваемые запросу (коллекция Parameters).
Коллекция Recordsets позволяет использовать любые открытые наборы данных, но обычно наборы данных используются не таким образом, а открываются методом OpenRecordset.
Объекты TableDef, QueryDef, Recordset содержат коллекцию Fields, которая состоит из полей, в которых хранятся данные. Объект Field имеет ряд свойств, определяющих характер информации, которая хранится в поле, а также характер и тип самого поля. Набор данных (Recordset) состоит из набора строк с перечисленными полями.
Основные свойства объекта Field. OrdinalPosition -- возвращает или устанавливает порядок отображения объектов Field в коллекции Fields (порядковый номер поля); в рабочем пространстве ODBCDirect это свойство не модифицируется. Свойство Value возвращает хранимые в поле данные (в случае, когда поле является частью коллекции Fields набора данных). Методы AppengChunk и GetChunk в сочетании со свойством FieldSize позволяют работать с такими типами данных, как OLEObject и Memo. Свойства Type, Size и Attributes определяют тип данных, которые хранятся в поле.
В объекте QueryDef есть так же коллекция Parameters, которая используется при выполнении параметрических запросов (запросов, имеющих параметры).
Также следует отдельно отменить коллекцию Indexes и ее элементы Index. Индексы позволяют значительно (на порядок, а то и на несколько порядков) повысить эффективность поиска и сортировки данных в БД. Индекс может иметь свойство Primary (основной), Unique (уникальный) и Required (обязательный). Primary означает, что индекс является основным; обычно это индекс для ключевого поля. Основной индекс обязательно должен быть уникальным. В таблице может быть только один основной индекс. Уникальный индекс означает, что все его записи (значения полей, из которых состоит индекс) уникальны и не повторяются. Обязательность (Required) индекса означает, что среди записей индекса не может быть пустых (null) полей. приложение доступ база данный
Объект Recordset является ключевым в БД. В DAO используется пять типов Recordset.
Table-type Recordset -- набор данных отображает базовую таблицу в БД, в которой вы можете добавлять, изменять, удалять данные. Применим только в рабочем пространстве Jet. К плюсам этого типа следует отнести невысокую ресурсоемкость, большую функциональность и возможность бинарного поиска в индексированных полях (свойство .Index для выбора текущего индекса и метод .Seek для поиска). Данные отображаются в порядке ввода (если таблица не имеет индекса или индекс не выбран) и отсортированными по индексу (если индекс выбран). Точного аналога в ODBC не имеет.
Dynaset-type Recordset -- наиболее функциональный набор данных. Является результатом запроса и содержит обновляемые записи. Возвращается динамический набор данных, в котором можно удалять, изменять и добавлять записи из таблицы или таблиц. Этот тип набора данных может содержать данные из одной или нескольких таблиц, он соответствует типу курсора ODBC keyset cursor.
Snapshot-type Recordset - статическая копия набора данных, которая обычно используется для поиска или формирования отчетов. Может содержать данные из нескольких таблиц, но не допускает обновления. Этот тип набора данных соответствует типу курсора ODBC static cursor.
Forward-only-type Recordset - соответствует типу Snapshot, но не имеет курсора. Позволяет только листать записи вперед (т.е. нет возможности применять методы .Move*). Позволяет увеличить производительность, т.к. это наименее ресурсоемкий тип набора данных. Этот тип набора данных соответствует типу курсора ODBC forward-only cursor.
Dynamic-type Recordset - этот набор данных возвращает результат выполнения запроса и позволяет удалять, изменять и добавлять данные в результат запроса (а не в исходные таблицы, в отличии от Dynaset). Этот тип набора данных соответствует типу курсора ODBC dynamic cursor. Этот тип набора данных применим только в рабочем пространстве ODBCDirect.
Типы наборов данных Dynaset-, snapshot-, и forward-only-type сохраняются в локальной памяти клиента; если памяти недостаточно, то данные сохраняются на диске. Если места на диске недостаточно, то будет сгенерирована ошибка.
Если вы создаете набор данных в рабочем пространстве Jet и не указываете его тип, то ядро DAO пытается создать наиболее функциональный набор данных, начиная с Table-type. Если это не удается, то проводится попытка создать dynaset, snapshot и наконец, forward-only. В рабочем пространстве ODBCDirect идет ориентация не на функциональность, а на скорость, поэтому тут порядок выбора типа набора данных таков: forward-only, snapshot, dynaset, dynamic. Когда создается набор данных, он позиционируется на первую запись (если есть данные), в противном случае RecordCount=0 и устанавливаются свойства BOF и EOF. Для поиска используется метод Seek (для table-type) и Find (для snapshot и dynaset).
DAO часто приписывают плохую работу с клиент-серверными данными, однако это является не особенностью собственно DAO, а скорее свойством нижележащей СУБД Jet. Jet исторически было ориентировано на работу с т. н. файл-серверными источниками данных, что и определило его архитектуру. Фактически вся обработка данных велась на клиентской машине. Поддержка клиент-серверных источников данных, хотя и была реализована, не была достаточно эффективной.
1.3 RDO (Remote Data Objects)
RDO (сокр. от англ. Remote Data Objects) -- технология доступа к базам данных компании Microsoft. Представляет собой набор COM-объектов инкапсулирующих ODBC API, а также клиентскую курсорную библиотеку.
Технология RDO появилась в 1995 году одновременно с выходом продукта Visual Basic 4.0.
RDO позиционировалась как технология более простая чем прямое использование вызовов ODBC и в то же время более эффективная чем технология DAO. RDO была ориентирована на обработку данных на стороне сервера БД (такого как MS SQLServer, Oracle итд) в отличие от DAO ориентированной в основном на обработку данных на стороне клиента.
В 1997 в составе продукта Microsoft Office 97 вышла версия RDO 2.0. Она также известна под названием "ODBC Direct". Под ним она использовалась в Microsoft Access и других продуктах.
Уже с 1996 года Microsoft стала продвигать новую технологию -- ADO, никак не связанную с ODBC, как перспективный способ доступа к данным, что сильно подорвало позиции RDO. В настоящее время (2005 год) технология практически не используется.
RDO также, как DAO или ADO, является технологией доступа к данным. RDO расшифровывается как Remote Data Object. Технология была внедрена в VB4 для разработчиков клиент-серверных приложений доступа к данным, в основном для баз данных SQL Server и Oracle. RDO является COM-надстройкой над ODBC, упрощающей работу с низкоуровневым интерфейсом ODBC API. RDO является промежуточным слоем между ODBC API и конечной программой.
В настоящее время RDO практически не используется, т.к. ADO обеспечивает более эффективный и удобный доступ к данным. В статье будут рассмотрены лишь отличия между RDO и другими технологиями для того, чтобы упростить перенос программы с RDO на другую технологию.
Корневым объектов в RDO является rdoEngine. Он содержит коллекцию rdoEnvironments и rdoErrors. Последняя является коллекцией ошибок, а первая содержит коллекцию подключений (rdoConnections), каждый элемент которой содержит коллекции таблиц (rdoTables), запросов (rdoQueries) и наборов данных (rdoRecordsets).
RDO является переходным между DAO и ADO, поэтому часть концепций наследуется от DAO, а часть концепций перешла впоследствии в ADO. Функционально, RDO ближе к DAO (если не учитывать синтаксических отличий), но объекта Database в RDO нет принципиально, вместо него есть объект Connection, в котором можно создавать новые наборы данных и запросы.
DAO базируется на технологии баз данных Microsoft Jet -- процессоре баз данных, предназначенном для Microsoft Access. JET был первым объектно-ориентированным интерфейсом для связи с Access. Приложения, использующие Access, могут задействовать DAO для прямого доступа к данным. Поскольку DAO создавалась сразу же вслед за Access, применение этой технологии -- самый быстрый и наиболее эффективный способ доступа к базам данных Access. DAO может работать и с отличными от Access базами данных, такими, как SQL Server и Oracle. DAO использует ODBC, но, поскольку метод DAO спроектирован специально для взаимодействия с JET, JET транслирует запросы между DAO и ODBC. Этот дополнительный шаг трансляции и является причиной замедления работы с базами данных, отличными от Access.
Рисунок 4. Архитектура ODBCDirect
Чтобы преодолеть это ограничение, разработчики Microsoft создали RDO. На Рисунке 3 показано, что RDO обращается к ODBС API напрямую, минуя JET. Затем было введено ODBCDirect, расширение DAO, которое отодвигает RDO на задний план. На Рисунке 4 показано, как DAO-приложение, используя ODBCDirect, обращается к базе данных, минуя проблемы, которые вызывает JET.
Начиная с ADO 2.1, Microsoft добавляет поддержку XML в объектную модель ADO, что позволяет хранить набор строк Recordset как XML-документ. Однако только при появлении ADO 2.5 ряд ограничений XML, который сохранялся в версии ADO 2.1 (например, жесткая иерархия объектов Recordset), был устранен. Хотя ADO может преобразовать документ XML в набор Recordset, он в состоянии читать только документы в собственной схеме, известной как Advanced Data TableGram (ADTG).
В поисках механизма доступа к несвязанным данным Microsoft расширяет ADO и вводит службу Remote Data Services (RDS). RDS создана после ADO и разрешает передачу объекта Recordset клиенту (например, в Web-браузер) при отсутствии активного соединения. Однако RDS, как и ADO, использует упорядочивание COM marshaling для передачи набора строк от сервера клиенту.
1.4 ADO.NET
Когда Microsoft начала разрабатывать .NET Framework, она имела хорошую возможность пересмотреть модель доступа к данным. Решив не продолжать разработку технологии ADO, специалисты Microsoft приступили к созданию новой структуры доступа к данным, при этом сохранив акроним. Microsoft разрабатывает ADO.NET на базе уже зарекомендовавшей себя объектной технологии ADO. Но ADO.NET ориентируется на три важные возможности, которые не поддерживаются ADO: поддержка модели доступа к несвязанным данным, что является ключевым элементом для работы в Web; поддержка тесной интеграции с XML; интеграция с .NET Framework (например, совместимость с базовой библиотекой классов типичной системы).
Архитектура ADO.NET. На Рисунке 7 представлена архитектура ADO.NET. Объект Recordset, который выполняет так много функций в ADO, здесь отсутствует. Вместо него в ADO.NET предусмотрено несколько особых объектов, выполняющих специфические задачи. В Таблице 1 описаны три из них: DataAdapter, DataReader и DataSet.
Рисунок 7. Архитектура ADO.NET
Поставщики данных .NET. Очень важный компонент ADO.NET, провайдер данных .NET, реализует интерфейсы ADO.NET. В частности, он реализует объект DataReader так, что его могут использовать и приложение, и объект DataSet.
Поставщик данных .NET состоит из четырех основных компонентов: Connection -- для связи с источником данных; Command выполняет команды над источником данных; DataReader читает данные из источника данных в однонаправленном режиме «только чтение», и DataAdapter, который читает данные из источника данных и использует их для заполнения объекта DataSet.
Visual Studio .NET содержит два поставщика данных .NET. Поставщик данных SQL Server .NET обеспечивает связь с SQL Server 7.0 и более поздними версиями. Этот метод доступа наиболее эффективен для SQL Server 7.0 и выше, потому что поставщик данных SQL Server .NET связывается напрямую с SQL Server через протокол Tabular Data Stream (TDS). Поставщик данных OLE DB .NET необходим для соединения с отличными от SQL Server базами данных, такими, как Oracle или IBM DB2. Этот поставщик данных использует OLE DB для соответствующих баз данных.
Рисунок 8. Различие маршрутов в ADO.NET
На Рисунке 8 показаны различные пути, по которым приложение может связываться с базой данных через ADO.NET. При выборе пути сначала определяется, какой поставщик данных .NET будет использоваться. Если это SQL Server 7.0 или более поздняя версия, то подключается поставщик данных SQL Server.NET. Если база данных SQL Server 6.5 или отличная от SQL Server (например, Oracle), понадобится поставщик данных OLE DB .NET. Заметим, что можно задействовать поставщик данных OLE DB .NET для баз данных SQL 7.0 и выше, но тогда потеряется выигрыш в производительности, который дает прямое подключение к SQL Server через протокол TDS. Однако в этом неспецифическом способе есть свой плюс -- мобильность, т. е. можно менять базы данных без модификации кода.
Далее необходимо определить, какую задачу требуется выполнить. Если надо просто прочитать и отобразить данные из источника данных, объекта Data Reader вполне достаточно. Но если предстоит манипулировать данными (например, редактировать или удалять), нужно использовать объект Data Set. Хотя задействовать этот объект следует только в случае необходимости, потому что он работает медленнее, чем Data Reader (Data Set использует Data Reader для заполнения таблиц).
Хотя в ADO.NET реализовано много новых возможностей, можно продолжать применять ADO. При разработке нового приложения на .NET следует отдать предпочтение ADO.NET.
Но если процесс разработки продолжается, можно оставить ADO в старых проектах и использовать ADO.NET в новых. .NET Framework позволяет задействовать ADO в .NET приложениях через COM, который поддерживает обратную совместимость без необходимости модифицировать ADO. Нужно импортировать библиотеки типа ADO как сборку (см. Экран 3). Затем можно использовать ADO, как показано в коде в Листинге 4.
В заключение хочу добавить, что технологии доступа к базам данных постоянно развиваются. Пока осваивается одна технология, уже появляется другая. Только одно остается неизменным: базы данных играют все более важную роль при разработке приложений. Знание новейших технологий и эволюционных изменений, которые они вызывают, поможет найти оптимальную технологию для текущей задачи и сделать обоснованный выбор в случае необходимых изменений.
ПРАКТИКА
Введение
Показывает, как программно создавать и использовать хранимые процедуры с ADO и Microsoft SQL Server.
Требование
Этот пример требует базы данных Борей. Для получения дополнительной информации см. в разделе Установка и устранение неполадок компонентов базы данных для примеров.
Построение образца
Нажмите клавишу F5
Описание
Следующие задачи демонстрируются:
Создание новой базы данных с помощью SQL команд и файлов ресурсов для управления сценариями для выполнения. Новая база данных с новой создается таблица. В таблице, который затем заполняется с дополнительными сценариями. Дополнительный скрипт выполняется для создания хранимых процедур, которые используются в этом образце.
Выполнение хранимой процедуры, которая не требует никаких параметров, используя SqlDataReader объекта.
Выполнение хранимой процедуры, которая требуется входной параметр и заполнить Grid Control с результатами SqlDataAdapter.
Выполнение хранимой процедуры, которая требует как входные и выходные параметры и использует возвращаемого значения.
PreenScreen
Sample Code
' This subroutine handles the click event for the Create Sprocs button, found
' on the Create Sprocs tab. This routine uses classes from the
' System.Data.SqlClient namespace to execute SQL statements that drop a
stored
' procedure (if it exists) and then create it.
Private Sub btnCreateSprocs_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnCreateDatabase.Click
Me.Cursor = Cursors.WaitCursor
Try
' Open the connection and leave it open until last SQL statement
' is executed.
Using conn As New
SqlConnection(My.Settings.MasterInstanceConnectionString)
conn.Open()
CreateDatabase(conn)
btnCreateDatabase.Enabled = False
End Using
Catch sqlExc As SqlException
MsgBox(sqlExc.ToString, MsgBoxStyle.OkOnly, "SQL Exception Error")
Catch ex As Exception
MsgBox("To run this sample, you must have SQL Express or SQL Server "
& _
"and the Northwind database installed." & vbCrLf & _
ex.ToString(), MsgBoxStyle.Critical, "Connection failed.")
Finally
Me.Cursor = Cursors.Default
End Try
End Sub
Размещено на Allbes
Подобные документы
Теоретические основы применения технологии ADO в среде Delphi. Основные понятия и определения теории баз данных. Компоненты Delphi для создания приложений, оперирующих с базами данных. Общий вид и основные особенности работы приложения "Аптека".
курсовая работа [1,4 M], добавлен 09.08.2012Характеристика модели клиент-сервер как технологии взаимодействия в информационной сети. Разработка и описание алгоритмов работы приложений на платформе Win32 в среде Microsoft Visual Studio, использующих для межпроцессного взаимодействия сокеты.
курсовая работа [544,6 K], добавлен 02.06.2014Проектирование информационной системы (базы данных и приложения) для решения операций по учету финансов предприятия. Разработка использующих их клиентских приложений с применением технологических платформ на языке PHP с применением технологии WEB.
дипломная работа [276,3 K], добавлен 24.03.2011Разработка базы данных "Аптека" в Microsoft Access, построение ее визуальной части в Delphi. Технологии связывания Microsoft Access со средой программирования Delphi. Создание запросов поисков. Реализация таблиц: продавцы, товары, чеки, поставка, счета.
курсовая работа [3,7 M], добавлен 04.03.2014Основные приемы работы в среде программирования Delphi. Особенности технологии создания простейших приложений. Работа с компонентами среды разработки приложений. Ввод, редактирование, выбор и вывод информации. Аспекты использования структуры ветвления.
методичка [619,9 K], добавлен 17.11.2011Интегрированная среда разработки Delphi и элементы, входящие в ее состав. Математическая модель, алгоритм решения и его свойства. Описание операторов, процедур, функций и методов. Создание приложений по аналитической геометрии и теоретической механике.
курсовая работа [1,8 M], добавлен 26.05.2010Разработка информационной и инфологической модели базы данных на тему "Командировка". Выбор модели данных и составление ее концептуальной схемы. Получение доступа к БД средствами Delphi, разработка пользовательского интерфейса. Реализация SQL-запросов.
реферат [1,2 M], добавлен 16.06.2009Возможности создания MDI-приложений, их преимущества. Основные приемы работы с записью информации в файл, экспорт данных в приложения Microsoft Office с помощью использование технологии OLE, на примере MS Excel интегрированного пакета MS Office.
лабораторная работа [1,2 M], добавлен 05.10.2010Методика создания приложений передающих данные в Microsoft Word. Технология взаимодействия приложений с текстовым редактором Microsoft Word. Создание и использование экземпляров серверов автоматизации. Взаимодействие с сервером на уровне документа.
курсовая работа [120,7 K], добавлен 26.03.2010Среда для разработки приложений Borland Delphi 2007 с помощью Microsoft Visual Basic. Создание современной системы "Паспортный стол" на языке программирования Delphi. Состав объектов, обеспечивающих функциональность всего клиентского приложения.
курсовая работа [333,7 K], добавлен 03.03.2015