|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
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), но используются они нечасто и поэтому здесь рассматриваться не будут.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||