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

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

Пусть файлы баз данных для вашей программы находятся в подкаталоге DBASE каталога, в котором находится ваше приложение (проект). Тогда вы можете определить необходимый путь к файлу с помощью следующего фрагмента кода. Причем каталог, из которого запускается приложение (проект) может называться как угодно.

Dim DBName As String

DBName = "BIBLIO.MDB"

Data1.Databasename = App.Path+"DBASE"+DBName Data1.Refresh

• EOFAction

Свойство EOFAction определяет действие объекта Data, если свойство EOF (end of file — конец файла) у созданного им набора записей установлено в True.

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

Значение value может быть выбрано из трех альтернатив: MoveLast, EOF, или AddNew.

При создании объекта Data свойство EOFAction устанавливается по умолчанию как MoveLast. При этом текущей остается последняя запись в наборе записей.

Установка свойства EOFAction в EOF приводит к тому, что при перемещении указателя текущей записи за пределы набора снизу, текущая запись становится недопустимой (invalid) и любая попытка ее редактирования приведет к ошибке. В этом случае происходит событие Validate на последней записи в наборе и, затем, событие Reposition, уже на недопустимой записи. При этом кнопка перемещения указателя на следующую запись на объекте управления данными становится неактивной.

Если установить свойство EOFAction в AddNew, то при перемещении указателя текущей записи за последнюю запись набора, происходит событие Validate на последней записи, затем, в набор записей добавляется новая пустая запись и происходит событие Reposition. Когда пользователь таким способом добавляет новую запись, эта она сначала создается в памяти компьютера в буфере копирования. Если после этого пользователь ввел необходимые данные и переместил указатель текущей записи на любую другую запись, то новая строка, уже содержащая данные, будет помещена в набор записей и потом в базу данных. В противном случае, если пользователь не ввел данные и переместил указатель, то пустая новая строка не добавляется в набор записей. Таким образом, установка свойства EOFAction в AddNew дает возможность пользователю добавлять в базу данных новые записи с помощью объекта Data и связанных с ним элементов управления.

Установить свойство 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: VB5BIBLI02.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 — в этом случае вы имеете возможность добавлять новые записи в набор записей, но не можете редактировать существующие записи;