Добавить в цитаты Настройки чтения

Страница 166 из 179

dblnconsistent — обновление может применяться для всех полей в наборе записей, даже если они нарушают условие объединения;

dbConsistent — обновление применяется только для тех полей в наборе записей, которые не нарушают условие объединения. Это значение свойства Options устанавливается по умолчанию;

dbSQLPassThrough — эта константа означает, что SQL-запрос, определенный свойством RecordSource объекта управления данными, будет выполняться на сервере MS SQL Server или Oracle (если вы, конечно, используете такие ODBC-базы данных);

dbForwardOnly — эта установка определяет набор записей таким образом, что по нему возможно перемещение только вперед (только метод MoveNext может использоваться для перемещения по набору записей);

dbSeeChanges — установка этого значения вызывает появление ошибки, когда какой либо пользователь изменил данные в то время, когда вы их редактируете.

При необходимости установить сразу несколько параметров набора записей, используйте операцию сложения. После изменения свойства Options во время выполнения приложения необходимо применить метод Refresh. Следующий пример иллюстрирует, как в многопользовательской среде открыть набор записей только для чтения исключительно для собственного пользования:

Data1.DatabaseName="C: VB5BIBLIO.MDB"

Data1.Options=dbDenyWrite + dbReadOnly

Data1.Refresh.

Для того, чтобы сравнить параметры набора записей с каким либо определенным значением вы можете использовать оператор And. С использованием следующего фрагмента кода вы, например, можете проверить, открыт ли набор записей только для чтения:

If Data1.Options And dbReadOnly Then…

• ReadOnly

Свойство ReadOnly определяет метод доступа к базе данных, открытой с помощью объекта Data: только для чтения или для чтения-записи.

Синтаксис: data1.ReadOnly=Boolean.

Если свойство ReadOnly установлено в True, то открытая база данных доступна только для чтения и вы, следовательно, не имеете возможности редактировать данные. Если же свойство установлено в False, то база данных открыта для чтения-записи и вы можете делать с данными все, что угодно. По умолчанию свойство ReadOnly устанавливается в False.

После изменения свойства ReadOnly во время выполнения приложения необходимо применить метод Refresh. Следующий пример показывает, как открыть базу данных только для чтения:

Data1.DatabaseName="C: VB5BIBLIO.MDB"

Data1.ReadOnly=T rue

Data1.Refresh

Если нет необходимости редактировать данные, то предпочтительно открывать базу данных в режиме только для чтения, так как операции с данными в этом случае выполняются несколько быстрее.

• Recordset

Свойство Recordset определяет набор записей, создаваемый объектом Data.

Синтаксис: data1.Recordset=string.

Параметр string представляет собой текстовую строку, которая определяет набор записей.

После загрузки приложения автоматически создается объект Data. Если у него корректно установлены свойства Co

Объект Recordset имеет несколько свойств и методов, о которых речь пойдет в разделе, посвященном использованию объектов доступа к данным. Тем не менее, в следующем примере показано, как использовать метод Delete объекта Recordset для удаления записей.

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

2. Добавьте на форму командную кнопку и определите ее свойство Caption, как “Удалить”.

3. Добавьте в процедуру обработки события Click командной кнопки следующий фрагмент кода: Private Sub Command1_Click()

Data1.Recordset.Delete

Data1.Refresh

End Sub

4. Запустите приложение. Теперь, используя в приложении объект управления данными, вы можете не только добавлять в базу данных новые записи, но и удалить любую запись.

• RecordsetType

Свойство RecordsetType определяет тип набора записей, созданного объектом Data.

Синтаксис: data1.RecordsetType=value.

Параметр value определяет тип набора записей. Возможные значения параметра value приведены в следующей таблице:

Постоянная ∙ Значение ∙ Описание

vbRSTуpeTable ∙ 0 ∙ Создается набор записей типа таблицы.

vbRSTуpeDynaset ∙ 1 ∙ Создается набор записей динамического типа. Этот тип создается по умолчанию.

vbRSTypeSnapshot ∙ 2 ∙ Создается статический набор записей.

После изменения свойства RecordsetType во время выполнения приложения необходимо применить метод Refresh.





В следующем примере для объекта управления данными Data1 закрывается существующий набор записей и, затем, создается новый набор записей статического типа:

Data1.Recordset Close

Data1.RecordsetType=vbRSTypeSnapshot

Data1.DatabaseName= “C: VB5BIBLIO.MDB”

Data1.RecordSource= “select * from Titles”

Data1.Refresh.

• RecordSource

Свойство RecordSource определяет источник данных для набора записей, создаваемого объектом Data.

Синтаксис: data1 RecordSource=string.

Параметр string представляет собой строку, определяющую источник данных. Возможные значения этого параметра представлены в следующей таблице:

Установка ∙ Описание

Имя таблицы ∙ Имя одной из таблиц, содержащихся в базе данных.

SQL-запрос ∙ Текстовая строка, представляющая собой SQL-запрос к базе данных. Причем синтаксис SQL выражения должен соответствовать типу базы данных.

Объект QueryDef ∙ Имя одного из объектов QueryDef из набора QueryDefs объекта Database. Этот источник данных поддерживается только для баз данных MS Access.

Чтобы проиллюстрировать использование свойства RecordSource объекта Data, построим приложение для просмотра полей базы данных BIBLIO2.MDB, в котором предусмотрим возможность отображать данные на экране компьютера упорядоченным образом. Для этого требуется выполнить следующие действия:

1. Откройте новый проект.

2. Добавьте на форму объект управления данными Data1 и определите его свойство DatabaseName, как C: VB5 BIBLI02.MDB. Не устанавливайте свойство RecordSource.

3. Добавьте на форму объект DBGrid и определите его свойство RecordSource, как Data1.

4. Добавьте на форму метку “Упорядочить по” и объект ComboBox.

5. Добавьте в раздел General следующий код:

Dim х As Integer

Dim A(4) As String Dim B(4) As String

6. Добавьте в процедуру загрузки формы следующий код:

Private Sub Form_Load()

А(0) = "Названиям"

А(1) = "Году издания"

А(2) = "ISBN"

А(3) = "Ид. Издателя"

For i = 0 То 3 Combol.AddItem A(i)

Next i

Combo1.Listlndex = 0 B(0) = "Title"

B(l) = "[Year Published]"

B(2) = "ISBN"

B(3) = "PubID"

End Sub

7. Добавьте в процедуру обработки события Click элемента управления ComboBox следующий код: Private Sub Combol_Click()

Dim strl As String strl = "select * From titles order by " & B(Combo1.Listlndex)

If Combo1.Listlndex = Empty Then strl = "select * From titles"

End If

Data1.RecordSource = strl

Data1.Refresh