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

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


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

13.3.4 Коллекция Fields и объекты Field

Работа с полями объекта Reocrdset из VBScript, коллекция ADO.Fields и объект ADO.Field, свойства Name, Type и Value

Главное содержание Recordset - это то, что лежит в ячейках на пересечении строк (в Recordset они называются записями - records и представлены соответствующими объектами Record) и столбцов в Recordset они представлены столбцами (полями - объектами Field), которые сведены в коллекцию Fields. Объекты Record используются нечасто - поскольку имен у них нет, а переходить между записями проще при помощи свойств и методов самого объекта Recordset - AbsolutePosition, Find, Move и т.п. Коллекция же Fields  и объекты Field используются практически в каждой программе.

У коллекции Fields все свойства стандартные, как у каждого объекта Collection:

·        Count - сколько всего столбцов в Recordset

·        Item - возможность вернуть нужный столбец (объект Field) по имени или номеру. Поскольку это свойство является свойством по умолчанию, то можно использовать код, как в нашем примере: rs.Fields("CompanyName"). Есть еще один вариант синтаксиса для обращения к этому свойству:

rs!CompanyName

Методы же имеются как стандартные, так и специфические:

·        Append - возможность добавить новый столбец в Recordset. Delete - соответственно, удалить столбец. Обе команды разрешено выполнять только на закрытом Recordset (пока не был вызван метод Open или установлено свойство ActiveConnection).

·        Update - сохранить изменения, внесенные в Recordset (будет произведена попытка создать новый столбец на источнике данных, если источник данных по каким-то причинам принимать эти изменения отказался, возникнет ошибка), CancelUpdate - отменить изменения, внесенные в Recordset.

·        Refresh - загадочный метод, который ничего не делает (о чем честно написано в документации). Обновить структуру Recordset данными с источника можно только методами самого объекта Recordset.

·        Resync - работает только для коллекции Fields объекта Record (не Recordset), обновляя значения в строке.

Намного больше интересных свойств у объекта Field:

·        ActualSize - реальный размер данных для текущей записи, DefinedSize - номинальный размер данных для столбца (в байтах), в соответствии с полученной с источника информацией.

·        Attributes - возможность определить битовую маску для атрибутов столбца (допускает ли пустые значения, можно ли использовать отрицательные значения, можно ли обновлять, используется ли тип данных фиксированной длины и т.п.)

·        Name - просто строковое имя столбца. Для столбцов, полученных с источника, доступно только на чтение.

·        NumericScale и Precision - значения, которые определяют соответственно допустимое количество знаков после запятой и общее максимальное количество цифр, которое можно использовать для представления значения.

·        Value - самое важное свойство объекта Field. Определяет значение, которое есть в столбце (если мы пришли через коллекцию Fields объекта Record, то для этой записи, если через Fields объекта Recordset - то для текущей записи). Пример применения - в нашей строке для поиска. Доступно и на чтение, и на запись (в зависимости от типа указателя). ADO позволяет работать с большими двоичными данными (изображения, документы, архивы), что очень удобно. OriginalValue - значение, которое было в этом столбце до начала изменений, UnderlyingValue - значение, которое находится на источнике данных (пока мы работали с Recordset, оно могло быть изменено другой транзакцией, и поэтому OriginalValue и UnderlyingValue могут не совпадать). Свойство Value - это свойство по умолчанию, поэтому эти две строки равноценны:

Wscript.Echo  rs.Fields("CompanyName")

Wscript.Echo rs.Fields("CompanyName").Value

·        Status - значение, отличное от adFieldOK (значение 0) означает, что поле было недавно программно добавлено в Recordset или при добавлении возникла ошибка на источнике данных.

·        Type - тип данных в соответствии с приведенной в документации таблицей. Например, для типа данных nvarchar возвращается 202.

У объекта Field есть только два метода - AppendChunk и GetChunk. Оба этих метода используются только для работы с большими двоичными типами данных, когда работать обычными способами через свойство Value не получается.

 

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

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


 

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

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