Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лек 011.doc
Скачиваний:
17
Добавлен:
07.02.2015
Размер:
64 Кб
Скачать

7. Объект Recordset

Объект Recordset обеспечивает методы для манипулирования наборами данных. Объект Recordset позволяет добавлять, удалять, обновлять записи и перемещаться по записям внаборе данных. С помощью набора объектов Fields и объекта Field можно получить доступ к любой конкретной записи. Обновление объекта Recordset может быть сделано немедленно или в пакетном режиме. При создании объекта Recordset автоматически открывается курсор. Объект Recordset позволяет определить тип курсора иего расположение для выбора результирующего набора данных. Используя свойство CursorType можно определить тип курсора: forward-only, static, keyset-driven, или dynamic. Тип курсора определяет поведение объекта Recordset при прокрутке записей вперед/назад или при обновлении записей. Тип курсора также влияет на видимость измененных записей. По умолчанию тип курсора устанавливается в forward-only только для чтения. Если необходимо только читать данные в однонаправленном режиме (forward), то изменять тип курсора не следует. С другой стороны, можно определить тип курсора в зависимости от решаемой задачи. С помощью свойства CursorLocation можно определить будет ли курсор серверным или клиентским. Расположение курсора играет большую роль при использовании несвязанных наборов записей. Подробнее об этом написано в разделе "Использование серверных курсоров". Объект Recordset может быть создан при выполнении метода Execute объекта Connection или Command. Следующий пример показывает использование объекта для открытия соединения и получения результирующего набора данных: Dim rs As New ADODB.Recordset rs.Open "select * from titles","DSN=pubs;UID=sa" While (Not rs.EOF) Debug.Print rs(0) rs.MoveNext Wend rs.Close В этом примере открывается соединение, создается набор записей, затем в цикле печатается содержимое первого поля каждой строки набора записей. Набор объектов Fields и объект Field Набор объектов Fields и объект Field позволяют получить доступ к данным любой колонки в текущей записи. К набору объектов Fields можно получить доступ через объект Recordset. К объекту Field можно получить доступ через набор объектов Fields используя индекс. Объект Field можно использовать для составления новой записи или для изменения уже существующих данных и затем использовать методы AddNew, Update или UpdateBatch объекта Recordset для вставки новых или изменения существующих данных. В отличи от RDO, в ADO нет метода Edit. Обновление объекта Field приводит к изменению данных и поэтому не требуется явных методов для редактирования данных. Следующий пример показывает использование объекта Field для возвращения имени, типа и значения каждого поля данных в текущей записи: Dim rs As New ADODB.Recordset Dim fld As ADODB.Field rs.Open "select * from titles","DSN=pubs;UID=sa" Set Flds = rs.Fields Dim TotalCount As Integer TotalCount = Flds.Count i = 0 For Each fld In Flds Debug.Print fld.Name Debug.Print fld.Type Debug.Print fld.Value Next rs.Close После создания объекта Recordset в результате выполнения запроса select * from titles, возвращается набор объектов Fields. Затем в цикле для каждого объекта Field из набора объектов Fields выводятся на печать свойства Name, Type и Value. Набор объектов Properties и объект Property Набор объектов Properties и объект Property обеспечивают информацию о параметрах объектов Connection, Command, Recordset и Field. К набору объектов Properties можно получить доступ через объекты Connection, Command, Recordset и Field. К объекту Property можно получить доступ через набор объектов Properties используя индекс. Набор объектов Properties состоит из объектов Property. Кроме значения и типа свойства объект Property позволяет получить доступ и к атрибутам свойства. Атрибуты описывают такие вещи, как будет или нет поддерживаться определенное свойство объекта или оно может быть доступно только для чтения или записи. Например, свойство ConnectionTimeout обеспечивает данные о том, сколько секунд будет длиться ожидание при установке соединения перед тем как будет сгенерирована ошибка завершения времени. Следующий пример демонстрирует возвращение свойств ConnectionTimeout, CommandTimeout и Updatability: Dim Cn As New ADODB.Connection Dim Cmd As New ADODB.Command Dim rs As New ADODB.Recordset Cn.Open "pubs", "sa" ' Find out ConnectionTimeout property. Debug.Print Cn.Properties("Connect Timeout") Set Cmd.ActiveConnection = Cn Cmd.CommandText = "titles" Cmd.CommandType = adCmdTable Set rs = Cmd.Execute() ' find out CommandTimeout property. Debug.Print Cmd.Properties("Command Time out") Debug.Print rs.Properties("Updatability")

В этом примере набор объектов Properties возвращается из объектов Connection, Command и Recordset. Свойство ConnectionTimeout объекта Connection выводится на печать. Затем аналогичные шаги выполняются для объектов Command и Recordset.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]