Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции СУБД.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
6.32 Mб
Скачать

25.6.Выборка результатов.

Большинство описанных выше функций генерируют результат. Результат может быть либо результирующим множеством, либо числом строк, на которые воздействовал оператор.

Результирующее множество представляет собой набор строк и столбцов, которые были определены SQL – оператором или функцией каталога.

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

Курсор автоматически генерируется для каждого результирующего множества. Непосредственно после создания результирующего множества, курсор устанавливается перед первой строкой данных. Для продвижения курсора следует вызывать функцию SQLFetch(). Данная функция продвигает курсор вперед на одну строку до тех пор, пока он не будет установлен за последней строкой результирующего множества.

25.6.1 Выборка информации о результирующем множестве

Прежде чем выбрать данные из результирующего множества прикладной программе может понадобиться некоторая информация о нём.

В ODBC существует несколько таких функций, в данном же пособии рассматриваются только две из них.

Для определения числа столбцов, которые были возвращены с помощью подготовленного или выполненного оператора, прикладная программа выполняет функцию SQLNumResultCols(), которая имеет следующий синтаксис:

RETCODE SQLNumResultCols (hstmt, pccol)

Таблица 32 Параметры SQLNumResultCols

Тип

Аргумент

Использование

Описание

HSTMT

hstmt

Вход

Идентификатор оператора

SWORD*

pccol

Выход

Число столбцов в

результирующем множестве

Для возвращения числа строк, на которые воздействовал SQL – оператор, прикладная программа вызывает функцию SQLRowCount(). Данная функция возвращает число строк на которые воздействовал оператор update, insert или delete и имеет следующий синтаксис:

RETCODE SQLRowCount (hstmt, pcrow)

Таблица 33 Параметры SQLRowCount()

Тип

Аргумент

Использование

Описание

HSTMT

hstmt

Вход

Идентификатор оператора

SDWORD*

pcrow

Выход

Для операторов update, insert или delete определяет число строк на которые воздействовал оператор, или -1, если число таких строк не определяется. Для других операций драйвер может определить pcrow. Например, некоторые источники данных могут возвращать число строк, которые были возвращены оператором select или функцией каталога до извлечения этих строк. Однако много источников не могут возвращать число строк в результирующем множестве до их извлечения. Следовательно, прикладная программа не должна полагаться на результаты, возвращаемые в SQLRowCount().