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