|
Программирование >> Руководство по созданию web приложений
= 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 источника . выпол- так же легко, как и в серверных сценариях, обращающихся к объектам
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |