Программирование >>  Руководство по созданию web приложений 

1 ... 85 86 87 [ 88 ] 89 90 91 ... 141


= VT BSTR;

= 4;

return false;

Здесь мы привели только фрагмент кода, установку свойств,

необходимых для инициализации.

Обратите внимание, что перед вызовом метода инициализации наша программа освобождает память, : ... для переменных типа BSTR:

После установки значений свойств .mi переменные уже не нужны.

Функция

функция startCommand предназначена для создания а также создания и

запуска команды.

Так как мы уже достаточно подробно описали этот процесс, то не будем повторяться. Отметим только, что . запускает . SELECT, выбирающую из таблицы покупателей clients поля с именами ClientID, IJseal Password, RegisterDate и Email:

LPCTSTR = ClientID, UserlD, Password, RegisterDate,

Email FROM

- . . . . NULL, - - - . - -

if (pIDBInitialize == . return false;

Далее функция init готовит массив свойств и, пользуясь

указателем на интерфейс IDBInitialize, выполняет инициализацию источника данных:

= VT I2;



Функция get records

Методику, использованную нами в этой функции для извлечения и обработки записей набора, полученного в результате выполнения команды SELECT, мы описали очень

Здесь же мы остановимся только на процессе получения данных из полей текущей записи и на выполнении преобразования типов для на консоль.

Обработка полей текущей строки выполняется в цикле:

else . . .а - А. == : ППЛ*}

ts =

bValae]

ts->day, ts->year,

priatfi \r };

Программа выводит на консоль данные в текстовом виде, однако извлекаемые данные могут иметь различный тип в зависимости от столбца. Прежде чем преобразование, мы определяем тип данных в текущем столбце, анализируя соответствующий элемент массива описания столбцов pCoilnfo. Тип данных записан в поле wType.

Для разработки кода, выполняющего преобразование. Вам помогут данные из таблицы 5-8. Анализируя содержимое поля wType, Вы сможете выбрать подходящий способ преобразования.

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

Если же столбец таблицы содержит числовое значение DBTYPE 14, мы используем в функции printf другой спецификатор формата и передаем данные не через указатель, а непосредственно.

faaBKia.aa дело обстоит с данными типа OBTYPE DITIMESTAiP. содержащими отметку о времени. Для того чтобы получить отдельные составляющие такой отметки, мы определили в своей программе указатель ts типа DBTIMESTAMP. Далее мы записываем в него значение адреса поля данных с временной отметкой



и обращаемся к полям структуры £ для отображения даты регистра-

ции посетителя в форматированном виде.

npciMf чем завершить работу, фпкыт get recorcis удаляет заказанные массивы и освобождает память, полученную для буферов:

deblr- II , : del<>l<> II del<>l<> n

Использование библиотеки шаблонов ATL

Как показано в примере из предыдущего раздела, прямое использование объектного интерфейса ОТ.Г. DB разработчика вникать во множество деталей, имеющих : к технологии применения модели объекта СОМ. Например, Вам придется образом получать указатели на интерфейсы, а потом заботиться об их освобождении, проверять коды заверщения методов и функций, сложные взаимосвязанные структуры для привязки данных и т. д.

Однако те из Вас, кто пользуется для создания приложений системой программирования Microsoft Visual С++ версии 6.0 или более новой, получают возможность заметно сократить . кода, не имеющего отно-щения к выполнению операций с базой данных, а. значит, сконцентрироваться на рещении своей Такую возможность предоставляет библиотека шаблонов ActiveX ТешрМе Library (ATT).

Она существенно как создание новых элементов управления

ActiveX, так и использование готовых элементов управления ActiveX, к которым можно отнести объекты OLE DB. этой библиотеки обеспечивают про-

стой доступ к возможностям OLE DB, упрощают процесс привязки данных наборов и параметров процедур, а также допускают использование есте-типов данных, . . , .. . . . С++.

Создавая приложения OLE DB с использованием библиотеки шаблонов ATE, Вы должны применять для работы с источником данных специальный набор классов. Его мы рассмотрим в этом разделе. Эти классы скрывают внутреннюю сложность обращения к объектам OLE DB, в распоряжение про-

граммистов относительно простой набор методов и свойств.

Для использования этих классов в исходные тексты Вашего приложения включить оператором #i!icliide файл . <atldbcli.h>

Класс CDataSource

Этот класс инкапсулирует в себе соединение с объектом источника OLE

DB. В рамках этого соединения приложение может создавать один или несколько

CпpимeнeниeмклaccaCDataSourcel источника . выпол-

так же легко, как и в серверных сценариях, обращающихся к объектам



1 ... 85 86 87 [ 88 ] 89 90 91 ... 141

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика