![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Компьютеры, Программирование
Программное обеспечение
Введение в ADO |
1. Введение. ADO - интерфейс, призванный обеспечить клиентское приложение доступом и возможностями манипулирования внешними данными. ADO является интерфейсом программного уровня к OLE DB (интерфейсом чрезвычайно удобным и высокопроизводительным). ADO и OLE DB составляют вместе технологию Универсального Доступа к Данным(UDA). При этом, являясь интерфейсом высокого уровня к OLE DB, ADO использует OLE DB поставщики данных (на данный момент это, в основном, провайдеры реляционных баз данных, хотя уже появляются поставщики для нереляционных источников данных и систем электронной почты). Стоит отметить, что корпорация Microsof во всеуслышанье заявляет, что ADO в ближайшее время заменит огромное разнообразие моделей и технологий доступа к данным, включая такие методы самой Microsof , как DAO, RDO. Примечание: В дальнейшем в статье подразумевается, что читатель знаком с интерфейсами OLE DB, такими понятиями, поставщик и потребитель данных, имеет базовые знания по COM. Также хотелось бы отметить, что данная статья явилась результатом попытки автора тщательно разобраться в технологии ADO и систематизировать полученные в итоге знания (а также сведения из лит.источников) и, естественно, статья не может на что-то претендовать (кроме критики J,) тем более на оригинальность. 2. Объектная модель ADO. ADO состоит из следующих основных компонентов: Объекты: Co ec io . ADO использует объекты Co ec io для предоставления отдельных соединений с источником данных. Comma d. Объекты Comma d используются для предоставления конкретных команд, выполняемых над источником данных. Эти объекты используются для отслеживания параметров, связанных с командой. Parame er. Объекты Comma d содержат коллекцию Parame ers, включающую все связанные с командой параметры. Каждый отдельный объект Parame er служит для хранения информации о параметре, передаваемом в исполняемую команду или возвращаемом в ней. Recordse . Объекты Recordse обеспечивают взаимодействие с данными. Они используются для хранения набора записей, возвращаемого из источника данных. Field. Объекты Recordse содержат коллекцию объектов Field, используемых для для работы с отдельными столбцами группы строк. Proper y. Объекты Co ec io , Comma d, Recordse , Field содержат коллекцию Proper ies объектов Proper y. Объекты Proper y служат для представления дополнительных параметров или свойств объекта ADO, которые не могут управляться встроенными свойствами объекта. Error. Предназначены для представления информации об ошибках, которые могут происходить в рамках одной операции. Коллекции: Fields. Proper ies. Parame ers. Errors. 3.Немного о директиве #impor Директива препроцессора #impor позволяет автоматически создавать библиотеку типов COM с классами С для COM интерфейсов. Это очень удобно, если у вас отсутствует доступ к MIDL-файлам. Использование этой директивы Visual C существенно упрощает работу с объектами, методами и свойствами ADO. При включении директивы #impor препроцессор компилятора формирует два заголовочных файла, содержащих библиотеку типов в виде исходного текста на С . Главный заголовочный файл (с расширением .
lh) содержит описание классов плюс объявление интеллектуального указателя (smar poi er - com p r ): COM SMAR P R YPEDEF(I ameOfI erface, uuidof(I ameOfI erface)); При подобном использовании макроса COM SMAR P R YPEDEF компилятор объявляет интеллектуальный указатель I ameI erfaceP r. Примечание: com p r - шаблонный класс, инкапсулирующий указатель на COM-интерфейс. Объект com p r автоматически вызывает методы инкапсулированного в нем интерфейса AddRef() при создании объекта и Release() при выходе объекта из области видимости, корректно управляя существованием COM-объекта. Вспомогательный заголовочный файл (. li) содержит реализацию классов библиотеки типов. Директива #impor имеет вид: #impor "имя файла" имя файла - обычно файл следующих типов: . lb, .odl, .dll, .exe, .ocx. атрибуты: exclude - исключает генерируемого в заголовочных файлах кода определенные элементы или библиотеки типов high me hod prefix - задает префикс, который будет ставится в начале имен методов и свойств верхнего уровня high proper y prefixes - задает префикс для стандартных имен Ge , Pu и Pu Ref, который будет поставлен в начале имени метода при обращении к свойству. impleme a io o ly - запрещает создание основного заголовочного файла i clude( ) - включает объявления других библиотек типов, определение которых встречаются в других системных файлах i jec s a eme - помещает строку текста в начале объявления объявления пространства имен заголовочного файла для библиотеки типов. amed guides - указывает компилятору определить и инициализировать переменные со старыми GUID o au o exclude - запрещает автоматическое исключение определений элементов o impleme a io - запрещает генерацию файла . li o amespace - Не используется пространство имен, спецификация которого находится в операторе library raw dispi erfaces - указывает компилятору генерировать все вызовы методов и свойств посредством функции I voke и возвращать код ошибки HRESUL . Оболочки верхнего уровня не генерируются. raw i erfaces o ly - позволяет предоставить содержимое библиотеки типов только нижнего уровня, подавляя генерацию заготовок функций верхних уровней raw me hod prefix - присоединяет к заданному имени префикс raw , который обычно подключается к функциям-членам низкого уровня raw a ive ypes - заставляет использовать типы данных нижнего уровня (вместо bs r - BS R, вместо varia - VARIA ) raw proper y prefixes - позволяет задать префикс нижнего уровня для методов-свойств pu , ge и pu ref re ame - переименовывает библиотеку типов и предотвратить повторное использование имен re ame amespace - указывает пространство имен, содержащее информацию о библиотеке типов.Итак, после нудных разъяснений по директиве #impor , рассмотрим, каким образом ее (директиву) можно использовать для включения интерфейсов ADO в наше приложение. Пропишем в файл s dafx.h (например) пресловутую директиву следующим образом: #impor "c:Program FilesCommo FilesSys emADOmsado15.dll" o amespace re ame("EOF","ADOEOF") В данном случае создаются классы из библиотеки типов msado15.dll, реализующей объекты ADO и поставляемой в рамках OLE DB SDK.
В параметре re ame приходится переименовывать ADO константу EOF, так как она уже используется в заголовочных файлах s dio.h, ios.h, s ream.h, включенных в afxwi .h. 4. Инициализация COM. Здесь все просто: перед работой с объектами ADO необходимо инициализировать среду COM. Делается это посредством вызова API функции HRESUL CoI i ialize(LPVOID pvReserved ); где pvReserved пареметр, равный ULL . Для выгрузки COM применяется функция void CoU i i ialize(); 5. Установка соединения с источником данных. Для этих целей, как отмечалось выше, используется объект Co ec io (подключение к источнику данных и управление этим подключением осуществляется с помощью методов Ope (), Close() объекта Co ec io ) .Хотя, стоит заметить, что вы можете не создавать его самостоятельно. Можно просто позволить ADO создать соединение, используемое объектами Recordse и Comma d. Однако вам необходимо создать объект Co ec io , если предполагается управление транзакциями (для создания и управления транзакциями предназначены следующие методы Co ec io : Begi ra s(), Commi ra s() и Roolback ra s()). Итак, создание соединения. Для этого предпринимаем следующие шаги: 1. Объявляем указатель на соединение: Co ec io P r pCo ; 2. Создаем объект Co ec io с помощью функции Crea eI s a ce(): HRESUL Crea eI s a ce( co s CLSID& rclsid, IU k ow pOu er= ULL, DWORD dwClsCo ex = CLSC X ALL ) где rclsid - CLSID объекта; pU k ow - указатель на внешний интерфейс при агрегировании; dwClsCo ex - контекст запуска исполняемого кода. Пример: HRESUL hr; hr = pCo .Crea eI s a ce( uuidof(Co ec io )); или hr = pCo .Crea eI s a ce( uuidof(Co ec io ), ULL,CLSC X I PROC SERVER ); 3. после создания экземпляра класса Co ec io создаем соединение. С этой целью вызываем метод Ope объекта Co ec io . HRESUL Ope ( bs r Co ec io S ri g, bs r UserID, bs r Password, lo g Op io s= ULL); Co ec io S ri g - строка соединения (см.табл.1.1 и 1.2). UserID - имя пользователя для подключения к источнику данных Password - пароль пользователя Op io s - позволяет указать, каким образом будет осуществляться соединение - синхронно (adCo ec U specified) или асинхронно(adAsy cCo ec ). Таблица 1.1. Вид строки соединения, передаваемой в метод Ope (.) объекта Co ec io для различных OLE DB поставщиков (MSD ) Источник данных Строка соединения OLE DB Microsof ® Access Provider=Microsof .Je .OLEDB.4.0;Da a Source=physical pa h o .mdb file Microsof SQL Server Provider=SQLOLEDB.1;Da a Source=pa h o da abase o server Oracle Provider=MSDAORA.1;Da a Source=pa h o da abase o server Microsof I dexi g Service Provider=MSIDXS.1;Da a Source=pa h o file Таблица 1.2. Вид строки соединения, передаваемой в метод Ope (.) объекта Co ec io для различных ODBC поставщиков данных (MSD ) Источник данных Строка соединения ODBC Microsof Access Driver={Microsof Access Driver ( .mdb)};DBQ=physical pa h o .mdb file SQL Server DRIVER={SQL Server};SERVER=pa h o server Oracle DRIVER={Microsof ODBC for Oracle};SERVER=pa h o server Microsof Excel Driver={Microsof Excel Driver ( .xls)};DBQ=physical pa h o .xls file; DriverID=278 Microsof Excel 97 Driver={Microsof Excel Driver ( .x
В качестве борьбы с бездуховностью, цинизмом, жестокостью - отчуждением человека от его самых сущностных качеств - мы видим движение общественности, и в первую очередь родителей, педагогов, психологов, социологов и т.д., против засилья в СМИ, на телевидении, в поп-литературе, поп-музыке тем пропаганды насилия, эгоизма, стяжательства и т.п. Должен быть (и может быть) введен контроль допуска на массовый рынок передач, книг, журналов, кассет, дисков подобного рода. Одновременно должен быть расширен доступ населения к центрам культуры и искусства - организация бесплатных выставок (вспомним передвижников!), концертов, чтений, создание микрорайонных и дворовых библиотек, спортивных школ, клубов по интересам, домов детского и юношеского творчества. Реализации этих и многих других мероприятий помогло бы всемерное развитие (лучше сказать - организация движения) различных форм благотворительности обществ милосердия, профилированных фондов, единовременных кампаний и др. Само участие людей в этом движении благотворно скажется на обретении ими чувства милосердия, сопричастности к жизни другого человека
1. Введение в популяционную и медицинскую генетику
2. Введение «Временного положения» 1867-1868 гг. и политико-правовые последствия для казахов
3. Введение новых правил в орфографии в немецком языке
4. Лекции по курсу "Введение в языкознание"
9. Введение в маркетинг (Доклад)
10. Ведение в курс "Основы экономической теории" (Введення в курс "Основи економiчної теорiї)
11. Введение и пересмотр хазарско-еврейской переписки
12. Люк Клапье Вовенарг. Введение в познание человеческого разума
13. Введение в онтологию языка
14. Введение в практику радиоэлектроники
15. Информационная деятельность в области здравоохранения: введение в проблему
16. Литература - Фармакология (введение)
17. Введение в предмет гипноза
18. Введение в специализацию Менеджмент
19. Введение в капельный анализ
25. Введение в использование шпаргалок
28. Проблемы студентов и преподавателей при введении ЕГЭ
29. Введение к книге «Мифы древнего Китая»
30. Введение в догматическое богословие - лекция 1
31. Введение в догматическое богословие - лекция 3
33. Введение в организационное поведение
34. Введение в специализацию Менеджмент
35. Философское введение в "Основы построения систем искусственного интеллекта"
36. "Лекции по введению в психоанализ"
37. Введение в теорию эволюции
41. История английского языка и введение в спецфилологию
42. О способах введения «чужой» речи в текст (знаки препинания при прямой речи и цитировании)
43. Введение в курс эргономики
44. Влияние иммобилизации на иммунологические показатели на фоне введения меланотропина
46. Введення в курс “Основи економічної теорії”
48. Введение в проблему искусственного интеллекта
49. Введение в компьютерные технологии
50. Введение в Интернет и безопасность в нем
52. Введение в Microsoft .NET для начинающих
57. Абстрактно-дедуктивный метод введения и формирования математических понятий в 10-11 классах
58. Таинства Церкви: введение в изучение
59. Введение в историю русской социологии
61. Активность основных карбоксипептидаз в тканях мышей при введении тестостерона и прогестерона
63. Введение в юридическую специальность
64. Порядок введения военного положения. Система политических прав и свобод граждан России
66. Аналіз методів введення обмежених обсягів текстової інформації
67. Введение в интернет. Доменные имена
68. Введение в программирование
69. Пристрої введення інформації. Клавіатура
73. Патологическая анатомия: введение в предмет, общие аспекты, методы исследования в патологии
75. Обоснование введения конкурсного производства на примере ОАО "Кимрыинжсельстрой"
76. Проект мероприятий и апробация введения новых образовательных программ в МДОУ № 165 г. Новокузнецка
78. Введение в концептуальную психотерапию
81. Введение в этническую психологию
82. Краткое введение в анекантаваду
83. Введение в технологические процессы на автомобильном транспорте