Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Топ:
Оснащения врачебно-сестринской бригады.
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Интересное:
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Дисциплины:
2023-01-02 | 38 |
5.00
из
|
Заказать работу |
|
|
Цель работы: изучить функции ODBC для выборки данных из результирующей таблицы, изучить скроллируемые курсоры в ODBC, приобрести навыки использования данных функций при разработке клиентских приложений баз данных.
Порядок выполнения работы и варианты заданий
1. Изучить программный интерфейс функций SQLFetch, SQLBindCol, SQLGetData, SQLExtendedFetch, SQLSetStmtOption.
2. Написать на языке программирования высокого уровня С/C++:
а) программу для создания курсора в ODBC. Определение курсора берется из вариантов заданий к лабораторной работе N 2. При нечетном номере варианта задания следует использовать статические курсоры, а при четном – динамические.
б) программу для просмотра результирующей таблицы с использованием функций SQLFetch и SQLBindCol (для нечетного номера варианта задания) и функции SQLGetData (для четного номера варианта задания);
в) программу для различных типов выборки строк из результирующей таблицы с использованием функции SQLExtendedFetch. Пользовательский интерфейс программы должен включать элементы управления (например, кнопки, диалоговые окна и т.д.) для показа первой, последней, следующей и предыдущей строк, а также строк с абсолютным и относительным номером N.
3. Запустить ODBC-администратор и с его помощью выбрать ODBC-драйвер для используемого в программе источника данных.
4. Выполнить программу, разработанную в п.2.
5. Оформить отчет о проделанной работе.
Основные сведения
Функция SQLBindCol
Данная функция назначает область хранения в памяти и тип данных для столбца результирующей таблицы. Функция SQLBindCol имеет следующий синтаксис:
RETCODE SQLBindCol(hstmt, icol, fcType, rgbValue, cbValueMax, pcbValue)
Описание параметров для данной функции приведено в следующей таблице.
|
Аргумент | Тип | Использование | Описание |
hstmt | HSTMT | Вход | Идентификатор оператора |
icol | UWORD | Вход | Номер столбца |
fCType | SWORD | Вход | С-тип данных столбца |
rgbValue | PTR | Вход | Область хранения данных (адрес) |
cbValueMax | SDWORD | Вход | Максимальная длина области хранения |
pcbValue | SDWORD FAR* | Вход | Длина столбца выборки (адрес) |
Столбцы результирующей таблицы нумеруются слева направо, начиная с 1.
Функция SQLFetch
Данная функция извлекает очередную строку данных из результирующей таблицы, причем возвращаются данные для всех столбцов, которые были связаны с помощью функции SQLBindCol. Синтаксис функции SQLFetch:
RETCODE SQLFetch(hstmt),
где hstmt – идентификатор оператора (входной аргумент типа HSTMT).
Функция SQLGetData
Эта функция позволяет выполнить выборку данных из столбцов, которые не были связаны с помощью функции SQLBindCol. Функция SQLGetData имеет следующий синтаксис:
RETCODE SQLGetData(hstmt, icol, fCType, rgbValue, rgbValueMax, pcbValue)
Данная функция имеет те же параметры, что и функция SQLBiindCol. Функция SQLGetData полезна в тех случаях, когда нет нужды выполнять выборку одних и тех же столбцов для каждой строки результирующей таблицы при вызове SQLFetch.
Функция SQLExtendedFetch
Данная функция используется вместо функции SQLFetch для выборки строк результирующей таблицы. Функция SQLExtendedFetch расширяет функциональность функции SQLFetch, поскольку предусматривает блочные и скроллируемые (перемещаемые) курсоры. Функция. SQLExtendedFetch имеет следующий синтаксис:
RETCODE SQLExtendedFetch(hstmt,fFetchType, irow, pcrow, rgfRowStatus)
Описание параметров функции приведено в следующей таблице.
Аргумент | Тип | Использование | Описание |
hstmt | HSTMT | Вход | Идентификатор оператора |
fFetchType | UWORD | Вход | Тип выборки |
Irow | SDWORD | Вход | Число строк выборки |
pcrow | UDWORD FAR * | Выход | Число реально извлеченных строк (адрес) |
rgfRowStatus | UWORD FAR * | Выход | Массив значений состояния для извлеченного множества строк |
ODBC поддерживает статические и динамические курсоры. Статические курсоры нечувствительны к изменениям базовых таблиц, а динамические являются полностью чувствительными.
|
Движение курсора устанавливается с помощью параметров fFetchType и irow. В приведенной ниже таблице определены значения параметра fFetchType и соответствующие им результаты выборки функции SQLExtendedFetch.
FFetchType | Действие SQLExtendedFetch |
SQL_FETCH_NEXT | Следующее строковое множество |
SQL_FETCH_PRIOR | Предыдущее строковое множество |
SQL_FETCH_RELATIVE | Строковое множество, начиная с N-й строки по отношению к текущей позиции курсора |
SQL_FETCH_FIRST | Первое строковое множество |
SQL_FETCH_LAST | Последнее строковое множество |
SQL_FETCH_ABSOLUTE | Строковое множество, начиная с N-й строки |
В приведенной таблице значение N определяется параметром irow. В данной лабораторной работе не используются блочные курсоры, по умолчанию считается, что строковое множество состоит из одной строки.
Методические указания
Создание курсора в ODBC не предполагает использование SQL-оператора объявления курсора. Курсор создается автоматически при выполнении оператора выборки SELECT. При этом идентификатор данного оператора SELECT должен использоваться для выборки данных из результирующей таблицы.
При выполнении данной лабораторной работы в полном объеме используется алгоритм использования ODBC, приведенный в описании лабораторной работы N 3.
Для выборки всех данных из заданных столбцов результирующей таблицы с помощью функций SQLBindCol и SQLFetch следует использовать следующий алгоритм:
1. Вызвать функцию SQLBindCol один раз для каждого столбца, который должен быть возвращен из результирующей таблицы.
2. Вызвать функцию SQLFetch для перемещения курсора на следующую строку и возврата данных из связанных столбцов.
3. Повторить шаг 2 до тех пор, пока функция SQLFetch не возвратит SQL_NO_DATA_FOUND.
Для выборки всех данных из заданных столбцов результирующей таблицы с помощью функций SQLGetData и SQLFetch следует использовать следующий алгоритм:
1. Вызывать функцию SQLFetch для перемещения курсора на следующую строку.
2. Вызвать функцию SQLGetData для каждого из заданных столбцов.
3. Повторить шаги 1 и 2 до тех пор, пока функция SQLFetch не возвратит SQL_NO_DATA_FOUND.
Прежде чем использовать перемещаемые курсоры, необходимо проверить, поддерживает ли драйвер функцию SQLExtendedFetch. Затем рекомендуется проверить, какие типы выборки допускает курсор (см. лабораторную работу N 3, варианты заданий типа B NN 4-9). После этого необходимо установить тип курсора (скроллируемый) с помощью функции SQLSetStmtOption. Пример вызова функции SQLSetStmtOption:
|
Rc=SQLSetStmtOption(hstmt, SQL_CURSOR_TYPE,
SQL_CURSOR_DYNAMIC);
В данном случае выбран динамический курсор. Для выбора статического курсора необходимо использовать опцию SQL_CURSOR_STATIC.
Библиографический список
1) Роберт Сигнор, Михаэль О. Стегман. Использование ODBC для доступа к базам данных. - М.: БИНОМ, 1995. - 384 с.
2) Кузнецов С.Д. Стандарты языка реляционных баз данных SQL: краткий обзор // СУБД. - N 2, 1996. - C.6-36
3) Венкатрао М., Пиццо М. SQL/CLI - новый стиль связывания для SQL // СУБД. - N 2, 1996. - C.37-44
4) Боуман Дж., Эмерсон С., Дарновски М. Практическое руководство по SQL. - М.: Диалектика, 1997. - 320 с.
5) Райан Стивенс, Рональд Р. Плю. SQL. - М.: БИНОМ, 1997. - 400 с.
6) Горев А., Ахаян Р., Макашарипов С. Эффективная работа с СУБД. - СПб.: Питер, 1997. - 704 с.
7) Соломон Девид и др. Microsoft SQL Server 6.5. Энциклопедия пользователя. - К.: ДиаСофт, 1998. - 784 с.
8) Джеймс Р.Грофф, Пол Н. Вайнберг. SQL: Полное руководство. - К.: BHV, 1998. - 608 c.
9) Ладани Ханс. SQL. Энциклопедия пользователя. - М.: ДиаСофт, 1998. - 624 с
10) Горелов А., Макашарипов С., Владимиров Ю. Microsoft SQL Server 6.5 для профессионалов. - СПб: Питер, 1998. - 464 с.
11) Роберт Д. Шнайдер. Microsoft SQL Server. Проектирование высокопроизводительных баз данных. - М.: ЛОРИ, 1998. - 361 с.
12) Рон Саукап. Основы Microsoft SQL Server 6.5. – М.: Издательский отдел “Русская редакция” ТОО “Channel Traiding Ltd”. – 1999. – 704 c.
13) Уанкуп Д. MS SQL Server 6.5 в подлиннике. – М.: Издательский дом “Вильямс”, 1999. – 912 с.
14) Тихомиров Ю.В. Microsoft SQL Server 7.0: разработка приложений. - СПб.: BHV. - 1999. - 352 с.
15) Хансен Г., Хансен Дж. Базы данных: разработка и управление: Пер. с англ. - М.: БИНОМ, 1999. - 704 с.
16) Дунаев С. Доступ к базам данных и техника работы в сети. Практические приемы современного программирования. – М.: Диалог-МИФИ, 1999. – 416 с.
ПРИЛОЖЕНИЕ
|
|
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!