Сегодня поговорим о некоторых методах объекта Recordset.
1. Метод AddNew создает новые записи, которые могут обновлять объект Recordset.
Recordset.AddNew FieldList, Значения
Список полей Необязательно. Одно имя, набор имен или порядковый номер поля в новой записи.
Значения не являются обязательными. Одно или несколько значений поля в новой записи. Если Fields — это массив, Values также должны быть массивом с таким же количеством элементов, иначе возникнет ошибка. Порядок имен полей должен совпадать с порядком значений полей в каждом массиве.
Мы обычно
rs.addnew
rs("хх")=хх
rs("хх")=хх
RS.обновление
Обратите внимание, что в режиме немедленного обновления (поставщик записывает изменения в базовый источник данных сразу при вызове метода Update) вызов метода AddNew без параметров устанавливает для свойства EditMode значение adEditAdd. Поставщик кэширует любые изменения значений полей локально. Вызовите метод Update, чтобы передать новую запись в базу данных и установить для свойства EditMode значение adEditNone. Если переданы параметры Fields и Values, ADO немедленно передает новую запись в базу данных (без вызова Update), а значение свойства EditMode не изменяется (adEditNone).
Вы можете спросить, в чем разница между использованием метода ADO AddNew в ASP и прямым использованием оператора «Вставить в...»? Какой путь лучше? Ответ: Метод ADO AddNew инкапсулирует только оператор «Вставить в». Поэтому при работе с большим объемом данных прямое использование операторов SQL значительно ускорит доступ к данным, поскольку сокращает время «трансляции» ADO.
2. Метод удаления удаляет текущую запись или группу записей.
Recordset.Delete AffectRecords
Значение AffectRecords AffectEnum определяет количество записей, на которые влияет метод удаления. Это значение может быть одной из следующих констант.
AdAffectCurrent Значение по умолчанию. Удалить только текущую запись.
AdAffectGroup удаляет записи, соответствующие текущему параметру свойства фильтра. Чтобы использовать эту опцию, для свойства Filter должна быть установлена одна из допустимых предопределенных констант.
adAffectAll удаляет все записи.
adAffectAllChapters Удалить все записи подмножества.
Использование режима немедленного обновления приведет к немедленному удалению в базе данных, в противном случае запись будет помечена для удаления из кэша, и фактическое удаление произойдет при вызове метода Update.
3. Метод Update сохраняет все изменения, внесенные в текущую запись объекта Recordset.
Recordset.Обновить поля, значения
Поля являются необязательными. Тип варианта, представляющий одно имя; или массив типов вариантов, представляющий положение имени и серийного номера поля (одного или нескольких), которое необходимо изменить.
Значения не являются обязательными. Тип варианта, представляющий одно значение или массив типов вариантов, представляющий значения поля (одного или нескольких) в новой записи.
Если вы хотите отменить любые изменения, внесенные в текущую запись, или отменить новые добавленные записи, вы должны вызвать метод CancelUpdate.
4. Метод CancelUpdate
Recordset.CancelUpdate
Используйте метод CancelUpdate, чтобы отменить любые изменения в текущей записи или удалить вновь добавленные записи. Изменения текущей записи или новых записей невозможно отменить после вызова метода Update. Если при вызове метода CancelUpdate добавляется новая запись, текущая запись до вызова AddNew снова станет текущей записью. Если текущая запись не была изменена или была добавлена новая запись, вызов метода CancelUpdate приведет к возникновению ошибки.
5. Метод Find выполняет поиск в наборе записей записей, соответствующих указанным критериям. Если критерии соблюдены, позиция набора записей устанавливается в найденной записи, в противном случае позиция устанавливается в конце набора записей.
Найти (критерии, SkipRows, searchDirection, начало)
критерии. Строка, содержащая инструкции, определяющие имена столбцов, операторы сравнения и значения для поиска.
SkipRows Необязательное длинное целочисленное значение, значение по умолчанию которого равно нулю, которое определяет смещение текущей строки или начальной закладки для начала поиска.
searchDirection Необязательное значение SearchDirectionEnum, указывающее, должен ли поиск начинаться с текущей строки или со следующей допустимой строки. Его значение может быть adSearchForward или
adSearchBackward. Завершается ли поиск в начале или в конце набора записей, определяется значением searchDirection.
start Необязательная вариантная закладка, используемая в качестве начальной позиции поиска.
Критериями «Оператора сравнения» могут быть «>» (больше), «<» (меньше), «=" (равно), «>=" (больше или равно), «<=" (меньше чем) или равно), «<>»
(не равно) или «like» (соответствие шаблону). Значениями в критериях могут быть строки, числа с плавающей запятой или даты. Строковые значения заключаются в одинарные кавычки (например, «state=’WA’»).
Значения даты разделяются знаком «#» (цифровые символы) (например, «start_date > #7/22/97#»).
Следует отметить, что find не поддерживает несколько полей. Но этого можно добиться с помощью фильтров. «name='abc'»И «city='sh'» не разрешены
. 6. Метод Move перемещает позицию текущей записи в объекте Recordset.
набор записей. Переместить NumRecords, Пуск
NumRecords Выражение длинного целого числа со знаком, указывающее количество записей, которые нужно переместить из текущей позиции записи.
Запуск необязательно, строковый или вариантный тип, используемый для расчета закладок. Также может быть одно из следующих значений:
AdBookmarkCurrent по умолчанию. Начните с текущей записи.
AdBookmarkFirst начинается с первой записи.
AdBookmarkLast начинается с последней записи.
Следует отметить следующее:
(1) Если параметр NumRecords больше нуля, текущая позиция записи переместится вперед (к концу набора записей). Если NumRecords меньше нуля, текущая позиция записи перемещается назад (к началу набора записей).
(2) Вызов метода Move из пустого объекта Recordset приведет к ошибке.
(3) Если вызов Move перемещает текущую позицию записи до первой записи, ADO поместит текущую запись перед первой записью набора записей (BOF имеет значение True). Попытка перемещения назад, когда свойство BOF уже имеет значение True, приведет к возникновению ошибки; если вызов Move перемещает текущую позицию записи после хвостовой записи, ADO помещает текущую запись после хвостовой записи набора записей (EOF имеет значение True). Попытка двигаться вперед, когда атрибут EOF уже имеет значение True, приведет к ошибке.
7. Методы MoveFirst, MoveLast, MoveNext и MovePrevious перемещаются к первой, последней, следующей или предыдущей записи в указанном объекте Recordset и делают запись текущей записью.
набор записей.{MoveFirst | MoveLast | MoveNext |
Следует отметить следующее:
(1) Используйте метод MoveNext, чтобы переместить текущую запись на одну запись вперед (к нижней части набора записей). Если последняя запись является текущей записью и вызывается метод MoveNext, ADO устанавливает текущую запись после хвостовой записи набора записей (EOF имеет значение True). Попытка двигаться вперед, когда атрибут EOF уже имеет значение True, приведет к ошибке.
(2) Используйте метод MovePrevious, чтобы переместить текущую позицию записи на одну запись назад (к началу набора записей). Объект Recordset должен поддерживать перемещение курсора назад; в противном случае вызов метода приведет к ошибке. Если первая запись является текущей записью и вызывается метод MovePrevious, ADO устанавливает текущую запись перед первой записью набора записей (BOF имеет значение True). Если атрибут BOF имеет значение True, перемещение назад приведет к ошибке.
8. Метод Clone создает дубликат объекта Recordset, идентичный существующему объекту Recordset. При необходимости укажите, что реплика доступна только для чтения.
Установите rstDuulate = rstOriginal.Clone
Переменная объекта rstDuulate, которая идентифицирует создаваемый дубликат объекта Recordset.
Переменная объекта rstOriginal идентифицирует объект Recordset, который необходимо скопировать.
Используйте метод Clone для создания нескольких копий объекта Recordset, что полезно, если вы хотите сохранить несколько текущих записей в данной группе записей. Использование метода Clone гораздо более эффективно, чем создание и открытие нового объекта Recordset с тем же определением, что и исходное определение.
То есть
rs.open exec,conn,1,1
rs2.open exec,conn,1,1
Надо переписать вот так
rs.open exec,conn,1,1
rs2=rs.clone
следует отметить, что:
(1) Текущая запись вновь созданной копии будет установлена в качестве первой записи.
(2) Закрытие исходного набора записей не закрывает его копию, а закрытие копии не закрывает исходный набор записей или любую другую копию.
9. Метод Close закрывает открытый объект и все связанные с ним объекты.
объект.Закрыть
Следует отметить следующее:
(1) Используйте метод Close, чтобы закрыть объект Recordset и освободить все связанные системные ресурсы. Закрытие объекта не удаляет его из памяти; вы можете изменить настройки его свойств и
открыть его позже. Чтобы полностью удалить объект из памяти, установите для переменной объекта значение Nothing.
(2) Если вы редактируете в режиме немедленного обновления, вызов метода Close приведет к возникновению ошибки, и вам следует сначала вызвать метод Update или CancelUpdate.
10. Открытый метод. Почему мы говорим об этом последним? Поскольку предыдущие методы атрибутов неясны, мы не поймем параметр CursorType.
набор записей.Открытый исходный код, ActiveConnection, CursorType, LockType, Параметры
Объекты Recordset могут подключаться к объектам Command через свойство Source. Параметр Source может быть именем объекта команды, командой SQL, указанным именем таблицы данных или хранимой процедурой. Если этот параметр опущен, система использует свойство Source объекта Recordset.
ActiveConnection
могут подключаться к объектам Connection через свойство ActiveConnection. ActiveConnection здесь может быть объектом Connection или строкой строковых параметров, содержащей информацию о соединении
с базой данных
(ConnectionString).CursorType
Параметр CursorType метода Open объекта Recordset указывает, с какого типа курсором будут начинаться данные, включая adOpenForwardOnly, adOpenKeyset, adOpenDynamic и ad
OpenStatic, которые описываются следующим образом:
---------- ------- ------------------------------------------- -----
Описание
постоянного значения-
-------------------------------------------------- ----------
adOpenForwardOnly 0 Значение по умолчанию, запускает курсор, который может двигаться только вперед (только вперед).
adOpenKeyset 1 запускает курсор типа Keyset.
adOpenDynamic 2 запускает курсор динамического типа.
adOpenStatic 3 запускает курсор статического типа.
-------------------------------------------------- -----------
Вышеуказанные типы курсоров напрямую влияют на все свойства и методы объекта Recordset. В следующем списке объясняются различия между ними.
Свойства набора записей adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic
AbsolutePage Не поддерживается Не поддерживается Доступно для чтения и записи Доступно для чтения и записи
AbsolutePosition Не поддерживается Не поддерживается Доступно для чтения и записи Доступно для чтения и записи
BOF Только для чтения Только для чтения
CursorType Чтение-запись Чтение-запись Чтение-запись Чтение-запись
EOF Только чтение Чтение -только чтение Только чтение
Фильтр Чтение и запись Чтение и запись Чтение и запись Чтение и запись
LockType Чтение и запись Чтение и запись Чтение и запись Чтение и запись Чтение и запись
PageCount Не поддерживается Не поддерживается Только чтение Только чтение
Размер страницы Чтение и запись Чтение и запись Чтение и запись Чтение Write
RecordCount Не поддерживается Не поддерживается Только для чтения Только для чтения
AddNew Поддерживается Поддерживается Поддерживается
CancelBatch Поддерживается Поддерживается Поддерживается CancelUpdate Поддерживается Поддерживается
Поддерживается Поддерживается
Закрыть Поддерживается Поддерживается Поддерживается Поддерживается
Поддерживается Поддерживается Поддерживается Поддерживается Поддерживается Поддерживается Поддерживается Поддерживается Поддерживается Поддерживается Поддерживается
Поддерживается Перемещение Не поддерживается Поддерживается Поддерживается Поддерживается Поддерживается
MoveFirst Поддерживается Поддерживается Поддерживается Поддерживается
MoveLast Не поддерживается Поддерживается Поддерживается Поддержка Поддержка
MoveNext Поддержка Поддержка Поддержка Поддержка Поддержка
MovePrevious Не поддерживается Поддержка Поддержка Поддержка
Open Поддержка Поддержка Поддержка
Обновление Поддержка Поддержка Поддержка Поддержка
UpdateBatch Поддержка Поддержка Поддержка Поддержка
------ ---------------------- ---------------------------- ---------
Параметр LockType метода Open объекта Recordset указывает, что тип блокировки. Если этот параметр опущен, система будет использовать свойство LockType объекта Recordset в качестве значения по умолчанию. К параметрам LockType относятся adLockReadOnly, adLockPrssimistic, adLockOptimistic и adLockBatchOptimistic и т. д., которые описываются следующим образом:
Описание значения константы
--------------------------- ------ --------------------------------
adLockReadOnly 1 Значение по умолчанию, объект Recordset запускается при чтении. -только режим и не может запускать методы AddNew, Update и Delete
adLockPrssimistic 2. При обновлении источника данных система временно блокирует действия других пользователей для обеспечения согласованности данных.
adLockOptimistic 3. При обновлении источника данных система не блокирует действия других пользователей, и другие пользователи могут добавлять, удалять и изменять данные.
adLockBatchOptimistic 4 При обновлении источника данных другие пользователи должны изменить атрибут CursorLocation на adUdeClientBatch, чтобы добавлять, удалять или изменять данные.
Следует отметить следующее:
Если источник данных не возвращает записей, поставщик устанавливает для свойств BOF и EOF значение True и не определяет текущую позицию записи. Если тип курсора позволяет это, новые данные все равно можно добавить в пустой объект Recordset.