Выбрать главу

Установить свойство EOFAction объекта управления данными data1 в режиме выполнения приложения можно следующим образом:

data1.EOFaction=vbEOFActionMoveLast,

data1.EOFaction=vbEOFActionEOF,

data1.EOFaction=vbEOFActionAddNew.

Возможные установки свойства EOFAction приведены в следующей таблице.

Установка ∙ Величина ∙ Значение

vbEOFActionMoveLast ∙ 0 ∙ MoveLast

vbEOFActionEOF ∙ 1 ∙ EOF

vbEOFActionAddNew ∙ 2 ∙ AddNew

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

Для этого:

1. Создайте вспомогательную базу данных BIBLI02.MDB, содержащую всего одну таблицу TITLES (чтобы не изменить оригинальную базу данных BIBLIO.MDB). Это можно сделать с помощью MS Access.

2. Откройте новый проект и добавьте на форму объект управления данными Data1.

3. В окне свойств объекта Data1 установите свойство DatabaseName, как имя файла базы данных с указанием полного пути C: \VB5\BIBLI02.MDB.

4. В окне свойств объекта Data1 установите свойство RecordSource как TITLES.

5. Разместите на форме пять меток и, соответственно, пять текстовых окон как показано на рис. 4.8 и установите их свойства следующим образом:

LаЬеl1.Сарtion=Название

Text1.DataSource=Data1

Text1.DataField=Title

Label2.Caption=Год выпуска

Text2.DataSource=Data1

Text2.DataField=Author

Label3.Caption=Доп. информация

Text3.DataSource=Data1

Text3.DataField=Year Published

Label4.Caption=Описание

Text4.DataSource=Data1

Text4.DataField=Subject

Label5.Caption=Ид. издателя

Text5.DataSource=Data1

Text5.DataField=Description

Рис. 4.1. Вид экранной формы.

6. Запустите приложение.

7. Переместите указатель на последнюю запись и, затем, добавьте новую пустую запись нажатием на кнопку перехода к следующей записи.

8. Введите какие-нибудь данные в связанных текстовых окнах и переместите указатель на любую другую запись, например, на предыдущую. Если, введенные вами данные соответствуют типам полей в таблице, то новая запись будет добавлена в набор записей и в базу данных. Результат работы программы показан на рис. 4.2.

9. Теперь еще раз добавьте новую запись и, не редактируя данные в текстовых окнах, переместите указатель на другую запись. Убедитесь, что пустая запись не добавляется в базу данных.

Рис. 4.2. Новая запись в базе данных.

• Exclusive

Свойство Exclusive определяет режим работы открываемой базы данных: однопользовательский или многопользовательский.

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

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

Свойство Exclusive используется объектом Data только во время открытия базы данных, поэтому, если переустановить его во время выполнения приложения, то необходимо применить также и Refresh метод:

Data1.Exclusive=true

Data1.Refresh.

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

Для баз данных ODBC это свойство игнорируется.

Откройте проект, созданный для демонстрации свойства EOFAction, установите свойство Exclusive объекта управления данными в True и запустите его. Таким образом, вы открыли базу данных BIBLIO2.MDB в однопользовательском режиме. Затем запустите систему управления базами данных MS Acces и попытайтесь открыть файл BIBLIO2.MDB. Результатом ваших действий будет выданное на экран сообщение, уведомляющее вас, что базу данных открыть невозможно.

• Options

Свойство Options позволяет установить или получить один или несколько параметров набора записей созданного объектом Data. Это свойство обычно используется при разработке многопользовательских приложений.

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

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

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

dbDenyWrite ∙ 1

dbDenyRead ∙ 2

dbReadOnly ∙ 4

dbAppendOnly ∙ 8

dbInconsistent ∙ 16

dbConsistent ∙ 32

dbSQLPassThrough ∙ 64

dbForwardOnly ∙ 256

dbSeeChanges ∙ 512

Ниже приведено краткое описание возможных установок свойства Options:

dbDeny Write — в многопользовательской среде другие пользователи не могут вносить изменения в записи;

dbDenyRead — в многопользовательской среде другие пользователи не имеют возможности читать записи. Эта установка применяется только для наборов записей типа таблица;

dbReadOnly — набор записей открывается только для чтения. В этом случае вы не можете изменять записи;

dbAppendOnly — в этом случае вы имеете возможность добавлять новые записи в набор записей, но не можете редактировать существующие записи;

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

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

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

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

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

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

Data1.DatabaseName="C: \VB5\BIBLIO.MDB"

Data1.Options=dbDenyWrite + dbReadOnly

Data1.Refresh.

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