Установка свойства BOFAction в BOF приводит к тому, что при перемещении указателя текущей записи за пределы набора сверху, текущая запись становится недопустимой (invalid) и любая попытка ее редактирования приведет к ошибке. В этом случае происходит событие Validate на первой записи в наборе и, затем, событие Reposition, уже на недопустимой записи. При этом кнопка перемещения указателя к предыдущей записи на объекте управления данными становится неактивной.
Установить свойство BOFAction объекта управления данными data1 в режиме выполнения приложения можно следующим образом:
data1.BOFaction= vbBOFActionMoveFirst,
или
data1.BOFaction= vbBOFActionBOF.
Возможные установки свойства BOFAction приведены в следующей таблице.
Установка ∙ Константа ∙ Значение
MoveFirst ∙ vbBOFActionMoveFirst ∙ 0
BOF ∙ vbBOFActionBOF ∙ 1
• Connect
Свойство Connect определяет тип базы данных, открываемой объектом Data. По умолчанию открывается база данных в формате Microsoft Access.
Синтаксис: data1.connect=string.
Возможные варианты установки свойства Connect приведены в следующей таблице.
Тип базы данных ∙ Определение
MS Access ∙ ";"
dBASE х ∙ "dBASE x;"
Paradox x.x ∙ "Paradox x.x;"
FoxPro x.x ∙ "FoxPro x.x;"
Excel x.0 ∙ "Excel x.0;"
Lotus WKx ∙ "Lotus WKx;"
Text ∙ "Text;"
Btrieve ∙ "Btrieve;"
ODBC ∙ "ODBC; DATABASE = defaultdatabase; UID=user; PWD=password; DSN=datasourcename; LOGINTIMEOUT=seconds"
Установка свойства Connect в режиме выполнения приложения производится следующим образом: data1.connect= " dBASE IV;"
data1.connect= " FoxPro 3.0;".
• Database
Использование свойства Database в режиме выполнения приложения позволяет получить ссылку на объект Database, который создан объектом Data.
Синтаксис: Set databaseobject = data1.Database.
Объект Data создает объект Database на основе своих свойств DatabaseName, Exclusive, ReadOnly, и Connect. Так как объект Database имеет свои собственные свойства и методы то, получив на него ссылку, вы можете использовать их в приложении. Например, вы можете использовать методы Close или Execute. Подробное описание работы с объектом Database приведено в уроках, посвященных объектам доступа к данным.
• DatabaseName
Использование свойства DatabaseName позволяет получить или установить имя и месторасположение источника данных для объекта Data.
Синтаксис: data1.DatabaseName=string.
Строковое выражение string определяет месторасположение и имя файла базы данных в форматах MS Access и Btrieve. Если используется база данных, размещенная на файл-сервере, то строка должна включать полный путь к требуемому файлу, например:
\\SERVER\DATA\DATABASE.MDB.
Для баз данных в формате dBASE, Paradox и др. строка string должна содержать только путь к файлу.
Для баз данных ODBC это свойство не определяется, так как все необходимые параметры для связи с базой данных устанавливаются свойством Connect.
Если вы во время работы приложения изменяете свойство DatabaseName, то после сделанных изменений необходимо выполнить метод Refresh объекта Data.
Продемонстрируем использование свойства DatabaseName в режиме выполнения приложения. Для этого:
1. Откройте проект, созданный для просмотра содержимого файла BIBLIO.MDB.
2. Удалите содержимое свойства DatabaseName объекта управления данными Data1.
3. Добавьте следующий код в процедуру обработки сообщения о загрузке формы:
Private Sub Form_Load()
data1.databasename= "c: \vb5\biblio.mdb"
data1.refresh
End Sub
4. Запустите проект.
При разработке приложений для работы с базами данных лучше не привязывать пользователя к конкретной структуре каталогов установкой свойства DatabaseName на этапе разработки программы. Это может быть не всегда удобно для пользователя. Хорошим примером уважительного отношения к пользователю служит хранение путей к файлам баз данных в специальных файлах конфигурации вашего приложения с последующим считыванием этой информации в процессе загрузки программы. Код, осуществляющий эту операцию, можно включить, например, в процедуры обработки событий Load или Activate соответствующей экранной формы.
Другим способом определения пути к файлу базы данных является использование глобального объекта Visual Basic — объекта Арр. Хотя этот объект не имеет ни методов, ни событий, у него есть несколько очень полезных свойств. Одним из них является свойство Path, которое определяет путь к выполняемому файлу. Если вы используете интегрированную среду разработки Visual Basic, например, для отладки приложения, то App.Path определяет путь к файлу проекта, который вы запустили.
Пусть файлы баз данных для вашей программы находятся в подкаталоге 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 и связанных с ним элементов управления.