Перемещение между записями в результирующем множестве ado



Скачать 64.43 Kb.
Дата11.07.2014
Размер64.43 Kb.
ТипДокументы
"

Next

Подобно большинству коллекций, коллекция Fields имеет



свойство Count, которое указывает на количество элементов в

коллекции. В случае коллекции Fields свойство Count определяет

количество полей в результирующем множестве. Отсчет в коллекции

ведется с нуля, поэтому программный код должен осуществлять

итерации с нуля до количества полей Минус единица. Оператор

Response. Write отправляет HTML в браузер посетителя Web. Оператор

Response. Write, представленный выше, посылает тег

, указывающий на конец ячейки

таблицы.


Следующие операторы эквивалентны:

<% Response.Write Server.HTMLEncode(rsMbrs("memberid"))

%>

и



<%=Server.HTMLEncode(rsMbrs("memberidM))%>

В сущности, знак равенства является аббревиатурой Response.

Write. Однако эта форма требует, чтобы открывающий тег <%, знак

равенства, выражение и закрывающий тег %> располагались в одной

строке.

В VBScript имеется встроенная константа vbCrLf, которая



весьма удобна на для вставки концов строк. Ее значение всегда состоит из двух байт: символа возврата каретки и символа перевода строки

<Ш1е>члены клуба<ДШе>

<%

"Открытие соединения с базой данных coinclub.mdb" Set cnnl = Server.CreateObject("ADODB.Connection") openStr = "driver= {Microsoft Access Driver (* .mdb)};" & _ "dbq=" & Server.MapPath("coinclub.mdb") cnnl.Open openStr,"","" "Открытие набора записей, содержащего все поля из всех записей таблицы members." sql = "SELECT * FROM [members];" Set rsMbrs = Server.CreateObject("ADODB.Recordset")

rsMbrs.Open sql, cnnl, adOpenForwardOnly %>

"Задание заголовка для HTML-таблицы"



множество путем предоставлении команды, текст которой содержится в

переменной sql, поставщику данных, на которого указывает объект типа

Connection cnnl. При этом не надо поддерживать перемещение в наборе

записей назад, а только вперед Модифицировать полученные в этом

результирующем множестве данные не предполагается».

RsMbrs.Open sql, cnnl, adOpenForvardOnly, adLockReadOnly, adCmdText


Перемещение между записями в результирующем множестве ADO
После того, как вы открыли набор записей, большинство

поставщиков данных автоматически устанавливают указатель позиции

на первую запись. Это хорошо, если первая запись - все, что вам нужно,

но во многих случаях вам хотелось бы просмотреть или обработать и

другие записи. Для поддержки такой возможности объект Recordset

предоставляет пять методов и четыре свойства для перемещения между

записями в результирующем множестве. Эти методы вы можете найти в

табл. 4-1.

Первые четыре метода, приведенные в табл. 4-7, являются самыми

простыми и наиболее употребительными методами для перемещения

указателя текущей записи вперед и назад среди записей в объекте

Recordset. Эти методы не требуют аргументов; вам достаточно просто

указать их имя, как показано ниже:

rsMbrs .MoveFirst

rsMbrs .Mo veLast

rsMbrs .Mo veNext

rsMbrs .Mo vePrevious

Если вы уже находитесь на последней записи в результирующем

множестве и выполняете метод MoveNext, ADO установит для свойства

EOF набора записей значение True. Аналогично, если вы выполняете

метод MovePrevious, когда уже находитесь на первой записи, ADO

установит для свойства BOF значение True. Чтобы прочитать все записи

в результирующем множестве, вам, следовательно, достаточно написать

следующий цикл:

rsMbrs .MoveFirst

Do While Not rsMbrs.EOF


Здесь будет ваш код для обработки записи
rsMbrs.MoveNext Loop

Если по каким-то причинам вам нужно обрабатывать записи в

обратном порядке, можете использовать такой цикл:

rsMbrs.Mo veLast

Do While Not rsMbrs.BOF
Здесь будет ваш код для обработки записи

rsMbrs.MovePrevious Loop


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

Следующие действия приведут к фатальной ошибке (которая приводит к остановке выполнения

вашего кода VBScript и отображает некое сообщение посетителю Web):

• Использование метода MoveNext, если свойство EOF уже имеет значение True.

• Использование метода MovePrevious, если свойство В OF уже имеет значение True.

• Использование любого метода перемещения, если набор записей пуст (В этом случае оба свойства ВОР и EOF имеют значение True.

)

ADO предоставляет пятый метод, Move, который использует номера записей:

наборзаписей.Моуе КолЗаписей, Начало

Аргумент КолЗаписей устанавливает количество записей, на которое будет осуществляться перемещение. Положительные значения указывают на движение вперед, а отрицательные значения - на движение назад. Аргумент Начало необязательный, но если используется, то в качестве него могут быть указаны любые допустимые закладки или значения из табл. 8. Табл. 8. Закладки, относящиеся к методу ADO Recordset.Move Константа Значение Описание AdBookmarkCurrent 0 Начало в текущей записи. AdBookmarkFirst 1 Начало в первой записи. AdBookmarkLast 2 Начало в последней записи.

Как и для других методов перемещения, попытка переместиться за

начало или за конец результирующего множества приведет к

возникновению фатальной ошибки. Это справедливо и для попытки

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

Свойство Filter создает новое, временное результирующее

множество, которое является подмножеством начального

множества. При этом можно осуществлять фильтрацию с

использованием логических выражений or и and, либо с

использованием любых специальных условий.

Изменение свойства Filter набора записей приводит к изменению

позиции текущей записи; новой текущей записью будет первая запись в отфильтрованном результирующем множестве. Снятие фильтра (путем установки для свойства Filter значения adFilterNone) восстанавливает все оригинальные записи для просмотра, но не восстанавливает позицию записи, действующую до осуществления фильтрации.


Табл. 11. Специальные значения свойства ADO Recordset.Filter

Константа Значение Описание

adFilterNone 0 Снимает текущий фильтр и восстанавливает

для просмотра все записи.

adFilterPendingRecords 1 Обеспечивает доступ только к тем записям,

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

adFilterAffectedRecords 2 Обеспечивает доступ только к

записям, подвергнувшимся действиям последних команд Delete, Resync,

UpdateBatch или CancelBatch.

adFilterFetchedRecords 3 Обеспечивает доступ только к записям,

хранящимся в текущей кэш-цамяти; т.е. к результатам последнего обращения к записям, извлеченным из базы данных.

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


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

Синтаксис для доступа к свойству поля таков:

Набор 3anuceuFields (индекс), свойство

Где:


• наборзаписей есть объект Recordset, который содержит требуемое результирующее множество.

• индекс есть либо имя поля, либо его порядковая позиция.

• свойство есть имя свойства

Свойства поля ADO

Описание


Текущая длина поля в байтах.

Битовый массив в виде длинного целого числа,

хранящий информацию о поле.

Максимальная длина поля в байтах.

Имя поля, обычно определенное в базе данных или в

операторе SQL.

NumericScale Количество десятичных знаков, используемых для

представления информации в базе данных (только для

числовых значений).

OriginalValue Значение, содержащееся в поле, когда вы в первый раз

получаете запись (до того, как ваш код внес какие-либо

изменения).

Precision Максимальное количество разрядов, используемых для

представления значений.

Туре Внутренний формат поля.

UnderlyingValue Текущее значение поля, хранящееся в базе данных.

ADO обновляет это свойство при каждом обращении к

базе данных. Если значения свойств OriginalValue и

UnderlyingValue различны, значит, какой-либо другой

процесс модифицировал запись после открытия вами

набора записей.

Value Текущее значение поля, воспринимаемое или

модифицируемое вашим кодом.

Вот практический пример. Следующее выражение возвращает

текущее значение поля memberid из набора записей с именем rsMbrs:

rsMbrs.Fields(Mmemberid").Value

Два используемых ADO по умолчанию параметра могут еще более

упростить это выражение: коллекция Fields по умолчанию является

объектом любого набора записей, а свойство Value является свойством

по умолчанию для любого поля. Таким образом, все следующие

выражения эквивалентны

rsMbrs.Fields("memberid").Value

rsMbrs.Fields("memberid")

rsMbrs("memberid").Value

rsMbrsfmemberid")

Свойство AciualSize Attributes

DeftnedSize Name

Если понадобится, можно выбирать поля в другом порядке -

нумеруя слева направо, начиная с нуля — как определено в источнике

данных. Например, если открыт набор записей rsMbrs с помощью

оператора SQL, который начинается следующим образом:

SELECT memberid, fhame, sname, position, phone, email

FROM members...

следующие выражения будут эквивалентны:

rsMbrs.Fields("memberid").Value

rsMbrs .Fields(O) .Value

rsMbrs(O)

Чтобы обработать все поля в наборе записей и отобразить

значения каждого из полей в отдельной ячейке таблицы, надо

использовать следующий код:

For i = 0 То rsMbrs.Fields.Count -1

Response.Write "

" & rsMbrs.Fields(i) & " ,

указывающий на начало ячейки таблицы, значение в поле i набора

записей isMbrs базы данных и тег



<сарйопхЬ>члены клуба



<Ш>код

<Ш>имя

<Ш>фамилия

<^>должность

<Ш>телефон



<% "Начало цикла обработки всех записей." Do While Not rsMbrs.EOF %> "Начало новой строки таблицы."

"Создание шести ячеек таблицы, которые содержат значения полей memberid, fname, sname, position, phone, и email соответственно."



<%

"Переход к следующей записи."

rsMbrs.MoveNext

"Конец цикла, выполняемого один раз для каждой записи."

loop

"Закрытие набора записей и уничтожение объекта"



rsMbrs.Close

Set rsMbrs = Nothing

"Закрытие соединения и уничтожение объекта"

cnnl.Close



Set cnnl = Nothing

%>

email

<%=Server.HTMLEncode(rsMbrs.Fields("memberid").Value)%> f




Похожие:

Перемещение между записями в результирующем множестве ado iconКраткий обзор ado. Net 2 Сравнение ado и ado. Net 2 Компоненты ado. Net и объектная модель 3
Для прикладных программ на основе asp. Net предусмотрена возможность использования технологии ado. Net, что позволяет обращаться...
Перемещение между записями в результирующем множестве ado iconУчебно-методическое пособие Саранск 2012 Элементы теории множеств: Множества. Операции над множествами Сведения из теории
Можно говорить о множестве стульев в аудитории, о множестве деревьев в парке, о множестве машин на улицах города, о множестве людей...
Перемещение между записями в результирующем множестве ado iconТехнология ado. Net (Activex data Objects for. Net) является одной из главных составных частей технологии. Net и предназначена для взаимодействия с источниками данных. Изначально ado
Изначально ado. Net разрабатывалась для использования в Web-приложениях и наше дальнейшее знакомство с этой технологией будет также...
Перемещение между записями в результирующем множестве ado iconЛабораторная работа «Использование ado. Net»
Изучить назначение и основные способы создания объектов ado. Net при помощи Visual Studio ide
Перемещение между записями в результирующем множестве ado iconОбщие методы определения перемещений
Если единичная сила Р=1 вызвала перемещение Р, то полное перемещение вызванное силой Р, будет: Р=РР. Если силовые факторы, действующие...
Перемещение между записями в результирующем множестве ado iconЛабораторная работа №5 Создание Web приложений с базами данных в среде ado. Net
Один из них связан с применением интерфейса Activex data Objects (ado). Посредством этого интерфейса приложения
Перемещение между записями в результирующем множестве ado iconБинарные отношения Основные положения Бинарным отношением r на множестве  называется подмножество R
Для упрощения записи, если ясно, на каком множестве задано отношение R, будем записывать (а,b) r или аRb. При необходиьости будем...
Перемещение между записями в результирующем множестве ado iconПосле того, как на протяжении целой главы рассматривалась некая технология работы с базами данных, попробуем подвести под нее теоретическую базу
Если в предыдущей версии ado упор делался на создании постоянных соединений, то в ado. Net, ориентированной, как это видно из названия,...
Перемещение между записями в результирующем множестве ado iconСформулируйте определение отношения. Приведите примеры отношений, заданных на множестве дробей
Укажите способы задания отношений. Задайте разными способами одно и то же отношение на множестве чисел {1,2,4,3,6,,8}
Перемещение между записями в результирующем множестве ado iconОб ознакомлении учащихся 5-6 классов с бинарными отношениями (выступление на методическом объединении учителей математики)
«равенства», «неравенства», «кратности», «делимости», «противоположности» в множестве чисел, «предшествования», «следования за» в...
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org
    Главная страница