Home Content Search

Recordset

Back Up

 

Connection
Recordset

Объект типа Recordset представляет из себя таблицу - результат запроса к базе данных. Экземпляр объекта создаётся командой Server.CreateObject("ADODB.Recordset").

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

По умолчанию, если не задано свойство CursorType, перемещаться по записям можно только вперед.

Коллекции

Fields Список полей таблицы. Каждый элемент коллекции представляет собой объект типа Field. Чтобы вывести список полей таблицы, попробуйте следующий код:

<% For i=1 To recordset.Fields.Count %>
<%= recordset.Fields(i).Name %><br>
<% Next %>

Properties Набор свойств соединения, в том числе параметры из строки ODBC-соединения типа DSN, UID, PWD и другие, а также параметры ODBC-драйверов и многое другое. Каждый элемент является объектом типа Property. Практический интерес представляют количество элементов коллекции (connection.Properties.Count), а также наименование (connection.Properties.Item(item).Name) и значение (connection.Properties.Item(item).Value) элемента (здесь item - номер элемента коллекции)

Свойства

ActiveConnection Объект типа Connection, к которому привязан данный Recordset
Source Строка-источник запроса, т.е. SQL-выражение, имя таблицы или хранимой процедуры
Filter Фильтр, т.е. та часть SQL-запроса, которая находится в составе WHERE, например,
recordset.Filter = "(LastName = 'Smith' OR LastName = 'Jones') AND FirstName = 'John'"
позволяет выбрать из всего списка только людей по фамилии John и имени Smith или Jones.
CursorType Тип курсора. Можно изменять только до открытия объекта
0 Forward-only курсор. Является значением по умолчанию. Позволяет перемещаться только вперед по записям таблицы. Наиболее оптимальное значение в тех случаях, когда нужно провести лишь единственный проход по записям
1 Keyset курсор. Подобен динамическому курсору за исключением того, что вы не можете видеть записи таблицы, добавленные другими пользователями базы данных
2 Динамический курсор. Позволяет любые перемещения по таблице, а также добавление, изменение и удаление записей, которые видны всем пользователям базы данных
3 Статический курсор - копия таблицы. Позволяет производить поиск по таблице и создавать отчёт. Добавления, изменения и удаления, проведённые другими пользователями, невидимы. Полезен, например, при постраничном выводе таблицы с возможностью перемещаться вперед-назад по страницам
State Определяет состояние объекта: 0 - закрыт, 1 - открыт
BOF
EOF
Логическая величина (True или False). Определяет, что курсор находится перед первой записью таблицы (BOF) или за последней (EOF)
EditMode Определяет состояние редактирования текущей записи - проведен ли метод Update для сохранения текущих изменений
0 Показывает, что редактирование не проводилось
1 Показывает, что данные в текущей записи редактировались но изменения еще не сохранены
2 Показывает, что текущая запись добавлена с помощью метода AddNew, но до сих пор не сохранена
Следующие методы доступны лишь при установке CursorType=3
RecordCount Определяет количество записей в таблице.
AbsolutePosition Перемещает курсор на новую запись под данным номером. Должен иметь значение в интервале от 1 до RecordCount
Bookmark Закладка в виде числа типа long. Никак не связана с номером записи. Можно при сканировании по таблице запомнить значение Bookmark в некоторой временной переменной, а затем вернуться обратно на данную запись
PageSize Задаёт число записей таблицы на странице. По умолчанию равен 10.
PageCount Определяет количество страниц. Автоматически пересчитывается при изменении PageSize
AbsolutePage Перемещает курсор на начало данной страницы. Вот, например, как можно вывести страницу номер pagenum:

<%
recordset.AbsolutePage = pagenum
For i=1 To recordset.PageSize
  < вывод текущей записи >
  recordset.MoveNext
Next
%>

Методы

Open Исполняет запрос и открывает таблицу-результат

recordset.Open [Sourse[, ActiveConnection[, CursorType]]]

Здесь необязательные параметры Source, ActiveConnection и CursorType обозначают то же, что и соответствующие свойства объекта Recordset. Кроме того, параметр ActiveConnection может быть не только объектом типа Connection, но и просто строкой инициализации ConnectionString

Close Закрывает объект
Requery Заново пересчитывает таблицу. Эквивалентен последовательному исполнению методов Close и Open
Clone Возвращает объект типа Recordset - копию исходного объекта

rstDuplicate = rstOriginal.Clone

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

MoveFirst
MoveLast
MoveNext
MovePrevious
Перемещает курсор на первую, последнюю, следующую или предыдущую запись таблицы
Move Перемещает курсор на новое положение

recordset.Move NumRecords[, Start]

NumRecords Параметр типа long. Количество записей, на которые нужно переместить курсор. Положительное значение означает перемещение вперед, отрицательное - назад по записям
Start Точка отсчёта, откуда нужно переместить курсор. Может быть либо закладкой, либо одним из возможных значений:
0 Значение по умолчанию. Точка отсчёта - текущая запись
1 Отсчёт идёт от первой записи таблицы
2 Отсчёт идёт от последней записи таблицы
AddNew Добавить запись. Можно сначала добавить запись, затем определить значение полей. А можно это сделать и одной командой:

recordset.AddNew [Fields, Values]

Здесь Fields - имя или массив имен полей, которые нужно определить, Values - значение или массив значений этих полей

Чтобы сохранить добавленную запись, необходимо выполнить метод Update

Delete Удаляет текущую запись или группу записей в зависимости от параметра:

recordset.Delete [AffectRecords]

AffectRecords - одно из возможных значений:

1 Значение по умолчанию. Удаляет только текущую запись
2 Удаляет записи, удовлетворяющие свойству Filter, которое должно быть задано заранее
Update Сохраняет изменения в текущей записи. Изменения в записи можно произвести предварительно или непосредственно в команде:

recordset.Update [Fields, Values]

Здесь Fields - имя или массив имен полей, которые нужно определить, Values - значение или массив значений этих полей.

Если вы переместили курсор с добавленной или изменённой записи, сервер автоматически выполнит метод Update

CancelUpdate Отменяет любые изменения или добавления записей, проведённые до использования метода Update
 

 

Back Up

FrontPage'98
Последнее обновление - 07 июня 2004
Internet Explorer 4.01