|
Программирование >> Руководство по созданию web приложений
Чтобы перейти к обработке следующей записи набора, мы вызываем метод MoveNext: break; Заметим, что отсутствие исключений заставляет нас проверку кода заверщения вызываемого метода, что увеличивает объем листинга. Пример программы в этом разделе мы приведем несложный пример программы, обращающейся к ADO без : - библиотеки типов. Эта так же как и пре- дыдущая, показывает в консольном окне содержимое таблицы сотрудников managers. Для сокращения листинга мы не стали проверять идентификатор и пароль пользователя, . : эту программу. Исходный текст программы Вы найдете в листинге 4-60. Листинг 4-60 хранится в файле ciiai-HPADOIICPPADOI.cpp на прилагаемом к книге компакт-диске. Переменные strAccessConnect, StrEipty и PtrCcilBapd класса CSt начены для строчных переменных класса BSTR с именами -и bstrCommand CString BSTR bstrAccessConnect; CString str . BSTR bstrEmpty; CStriui - * from a BSTR . В строке bstrAccessConnect записана строка параметров, необходимых для подключения к источнику данных. Переменная bstrEmpty представляет собой пустую а переменная . содержит строку SQE, с помощью ко- торой мы получим все записи из таблицы managers. Кроме того, нам две пустые и vtEmpty2 клас- са VARIANT: VARIANT vtEmpty; VARIANT В области глобальных : нащей программы находится определение пepeмeннoйcom initклaccaComlnit,пpeднaзнaчeннoйдлявыпoлнeнияиници-ализации переда началом работы программы и для освобождения ресурсов перед ее struct Comlnit bstrAccessConnect = . , : ip(); В задачу конструктора класса входит вызов уже знакомой Вам функции а также инициализация перечисленных выше неременных классов BSTR и VARIANT. Деструктор функцию .а .. нри по- мощи функции SysFreeSt г: -освобождает ресурсы, . - : для строк клас- са BSTH Отображение содержимого таблицы выполняется функцией nagers, получающей управление от функции после запуска нашей иро- граммыиинициализации библиотеки классов MFC. it , taaia(iat argc, TCHAR* argv[], TCHAR* еаарП) I int nRetCode = 0; .NULL, cerr инициализации MFC ) <a eacil; nRetCode = 1; else getManagersO; return nRetCode; В области локальных . - функции : : определены указате- ли на интерфейсы сп. rs и ...а. = NULL; rs = NULL; - NULL; В неременную си записывается указатель на Connection, длячего используется функция СоС - - - объект указанного класса: - = S OK; = - : .... NULL, bstrEmpty = VT ERROR; Если данный объект был успешно создан, мы записываем в свойство Соппес-: объекта Connection строку параметров соединения, вызывая для этого метод . :. . onStSInij hr=cn->put ConnectionString(bstrAccessConnect); Далее соединение с источником данных открывается методом Open. Так как все параметры соединения уже записаны в свойство CorinectiOHString мы указываем первые три . . метода Open как пустые, передавая через них строку bstrEmpty: = cn->Open(bstrEmpty, bstrEmpty, bstrEmpty, . eel); Ha этапе происходит создание объекта Command, для чего мы опять применяем функцию но с другими параметрами. Указательна интерфейс созданного объекта команд записывается в переменную Cid; ifCS hi = . -. \ - NULL, . ! . (LPV0ID*}bcii3); Чтобы связать объект Command и соединение, мы записываем указатель на интерфейс соединения в свойство Active Connect ion объекта Connection, вызы-вaямeтoдputref ActiveConnection: Текст команды записывается методом . . . i . в . . свойство объекта Command: ir(SliCCEEOED(hr)} hr = cmd->put CcMeBii(JTcxt(b8trConnand); Теперь можно выполнять команду, вызывая метод Execute. В качестве первых двух параметров мы передаем этому методу пустые переменные класса VARIANT. Третий параметр . . ; что необходимо выполнить строку SQE, заданную в свойстве о а . а . объекта Command. И наконец, через i . параметр методу Execute адрес ; в которую будет записан указатель аа объект класса . : содержащий набор записей, извлеченных из таблицы managers: выполнения команды в цикле при помощи рассмотренной ранее методики извлекаются отдельные набора Recordset, и результат выводится на консоль. Перед запуском цикла мы определяем переменные класса CoIeVariant, в которые будут записаны значения, извлеченные из строк таблицы: COIeVariant а COIeVariant COIeVariant COIeVariant vLastLogin; COIeVariant
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |