Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Программирование для администраторов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

13.3.7 Прочие свойства и методы объекта Recordset

Свойства объекта ADO.Recordset, ActiveCommand, ActiveConnection, State, методы Close(), GetString(), GetRows(), Save()

Ниже рассказывается о некоторых дополнительных свойствах и методах объекта Recordset, которые используются реже, чем уже рассмотренные:

·        свойства AbsolutePage, PageSize, PageCount позволяют использовать группы записей - страницы - для перемещения по Recordset. По умолчанию размер страницы равен 10 записям.

·        свойство ActiveCommand позволяет вернуть объект Command, представляющий команду, которая использовалась на источнике при создании Recordset и заполнении его записями. Подробнее про объект Command будет рассказано ниже.

·        свойство ActiveConnection возвращает объект Connection, который использовался для создания Recordset. Передать (или получить) строковое значение, на основе которого будет создан объект Connection, можно при помощи свойства Source.

·        свойство CacheSize позволяет определить количество записей, которое будет находиться в оперативной памяти на клиенте (остальные записи будут подкачиваться по мере необходимости с источника). Используется тогда, когда количество записей в Recordset очень большое или приходится работать с записями очень большого размера, например, большими двоичными объектами;

·        свойства DataSource и DataMember используются только при применении Data Environment и здесь они рассматриваться не будут;

·        свойство EditMode позволяет определить состояние текущей записи - не изменялась, изменялась, но изменения еще не переданы на источник, удалена и т.п.

·        свойства InsertCommand, DeleteCommand, UpdateColumn позволяют определить объекты Command, представляющие команды, которые будут использоваться на источнике при создании, удалении и изменении записей в Recordset соответственно;

·        MarshalOptions - позволяет определить, какие записи при изменении Recordset будут возвращаться с клиента на сервер - все (по умолчанию) или только измененные;

·        свойство MaxRecords настоятельно рекомендуется указывать перед открытием для всех Recordset, для  которых потенциально возможно получить с источника очень большое количество записей (что может привести к нехватке оперативной памяти на клиенте). Оно определяет максимальное количество записей, которые могут быть скачаны в Recordset. Вместо этого свойства можно использовать и CacheSize.

·        свойство State позволяет определить, что в настоящее время происходит с Recordset. Используется одно из 5 значений: открыт, закрыт, соединяется, выполняет команду на источнике или получает оттуда данные.

·        свойство Status позволяет определить результат последней операции обновления данных;

·        StayInSync - свойство, которое используется только иерархических Recordset. Определяет, будут ли при перемещении родителя перемещаться в иерархии и его дети (по умолчанию) или останутся на месте.

А теперь о методах:

·        Cancel позволяет прервать открытие Recordset (например, если оно затянулось);

·        CancelBatch и CancelUpdate позволяют отменить внесенные в Recordset изменения (до вызова команды Update) в разных режимах.

·        метод Clone позволяет скопировать объект Recordset в другой объект Recordset со всеми закладками (обычно используется, когда очень надо иметь более, чем одну текущую запись).

·        метод Close позволяет высвободить память, занимаемую данными Recordset (но не удаляет сам объект). В случае необходимости вы можете опять вызвать метод Open, чтобы воссоздать этот объект с ранее определенными параметрами (значения свойств объекта Recordset при вызове метода Close сохраняются).

·        CompareBookmarks позволяет сравнить две закладки и вернуть результат сравнения (указывают на ту же запись, первая выше, первая ниже и т.п.)

·        метод GetRows позволяет вернуть из Recordset двухмерный массив типов Variant. В качестве необязательных параметров принимает стартовую позицию, количество строк, которые нужно поместить в массив, и те столбцы, которые нужно извлечь из Recordset. В нашем примере применение этого метода может выглядеть так:

arr = rs.GetRows

Wscript.Echo arr(2, 3)

·        GetString - самая простая возможность получить из объекта Recordset строковое значение. По умолчанию разделители между столбцами - символы табуляции, между записями - перевод каретки. Можно использовать в отладочных целях, чтобы посмотреть на Recordset глазами:

Wscript.Echo rs.GetString

·        NextRecordSet - возможность очистить текущий Recordset и выполнить следующую команду, указанную в методе Open, если команды были указаны в формате

"select * from dbo.customers; select * from dbo.employees"

Обычно такой подход используется для обработки наборов однотипных таблиц.

·        Requery - повторно выполнить запрос, который использовался для метода Open, и заново заполнить Recordset.

·        Resync - обновить значения уже полученных записей, скачав их заново из источника. Новые записи при этом видны не будут (в отличие от метода Requery).

·        Save - возможность сохранения Recordset в файле на диске. Можно использовать формат Microsoft Advanced Data TableGram (ADTG), XML и родной формат провайдера. Например:

rs.Save "C:\rscustomers.xml", 1

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

·        SetAllRowsStatus - возможность изменить значение свойства Status для всех строк Recordset.

·        Supports - возможность выполнить проверку того, что поддерживает данный Recordset (в каких направлениях можно двигаться, поддерживается ли поиск, закладки и т.п.). Те возможности, которые проверяются этим методом, определяются особенностями провайдера (драйвера для подключения к источнику).

Для объекта Recordset предусмотрен также набор событий (EndOfRecordset, FetchComplete, MoveComplete), но используются они нечасто и поэтому здесь рассматриваться не будут.

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 

 
© 2004-2016, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru