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

1 ... 73 74 75 [ 76 ] 77 78 79 ... 141


return:

bstr t teCornStrlng(L DSM=BooaStore ); bstr t tJ8UserI[l(L dbo ): bstr t BslJserPaoCL );

ovtMissiiiLi,

В результате выполнения этого оператора создается набор записей класса Recordset. Он обрабатывается в цикле с использованием приемов, описанных нами ранее:

variant t variant t :-а.

...variant а ...variant . vLastLogin; variant t a м.

CString atiTiip = ;

a. a,. ,. . ntt{ ManaieriO))->¥aiua:

vName =

catcfi{ eoii error ex) I

Adotr rHanclierlci): return false;

Так как ошибки к соединению с источником данных, в качестве

параметра этой функции передается указатель на интерфейс нашего источника данных era Функция getManagers

Эта функция получает содержимое таблицы managers не с помощью хранимой процедуры, а выполняя строку SQL с . , i SELECT:

on = NULL; rs = NULL;

;a hr = .



vF.ijhts =

hr = break;

Для преобразования , значений в текстовые строки и отображе-

ния их в консольном окне мы используем функцию v2st г, исходный текст которой i ib листинге 4-59.

Исходный текст функции - -- ошибок .AdoЕ ггНаш..... в листинге 4-58. Мы уже рассказывали раньше об использованных в нем приемах извлечения la.atiia ошибок.

Листинг 4-58 Вы найдете в файле ch4\CPPADO\adoerrhandler.cpp на прилагаемом к книге компакт-диске.

Служебная tbviiaiiiia v2sta (листинг 4-59) нужна для преобразования значений тина VARIANT в текстовые строки.

Листинг 4-59 Вы найдете в файле ch4\CPPAD0\vcrack.cpp на прилагаемом к книге компакт-диске.

Эта функция получает входной параметр как ссылку на класса

предусмотренного в MFC для работы с переменными типа VARIANT. Результат преобразования возвращается как текстовая переменная класса CString.

очень просто.

Как переменная VARIANT может содержать значения разных типов,

тип определяется содержимым поля vt. Функция vgatr анализирует содержимое этого к а-а выбирая тот или иной способ преобразования исходного значения в текстовую строку.

Обратите внимание на применение функций SOleCarreae и COleDateTine, выполнять такое преобразование для денежных данных и для значений

CString . - . . г. var)

CString strRet;



222 Базы в Интернете. Практическое руководство

case VT EHPTY: case VTNULI.;

strRet = JCNOll ):

break;

break;

case VT., C¥;

StrRet = C(lleCnrreaav< var). Formate):

break; case VT DATE:

StrRet = C01eD eTlifl(var).Foriiat(jr{ .M.Ia.ly IH; IS }); break; case aT.J)STFa

StrRet = V BSTR( &var ); break;

default:

strRet = , I( aot supaol Btl }: break;

return strRet;

Эти функции доступны при использовании библиотеки классов MFC. Но при необходимости Вы сможете построить ifniiKiaiaa подобную v2str. и применения средств MFC.

Вызов ADO через функции Win32

Если Вам больше нравится элементов ActiveX средства-

ми программного интерфеггса : то Вы можете обоггтись без импортирования библиотеки типов (хотя этот способ предпочтительнее). В этом разделе мы расскажем о том, как . к методам и своггствам объектов ADO без при-

менения оператора

Обращение к интерфейсам и методам ADO

Рассмотрим некоторые приемы обращения к интерфеггсам и методам ADO, основанные на использовании функцигг . интерфеггса Win32, предназначенных для работы с объектами СОМ (таких, как -Createlnatanae. Инициализация СОМ и переменных HS7R

Как и в предыдущем случае, для работы с объектами ADO Вам необходимо про-: систему СОМ вызовом функции Liza, а перед за-

вершением программы надо t.iaraiiaaaiai ь ресурсы СОМ при помощи функции CoUninitialize.

Отказавшись от импортирования библиотеки типов, мы не сможем воспользоваться для создания строк типа BSTR классом tist rt. Поэтому нам придется позаботиться об инициализации и освобождении ресурсов, связанных с такими строками. Эти операции удобно вместе с инициализациег! и освобож-



1 ... 73 74 75 [ 76 ] 77 78 79 ... 141

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