- •Введение
- •1. Базы данных и системы
- •1.1. Наборы записей RecordSet
- •1.2 Элементы управления Data
- •1.3.Свойства элемента управления Data
- •1.4. Методы элемента управления Data
- •Option Compare Text,
- •Option Compare Binary.
- •1.5.1. Первичный ключ
- •1.5.2. Внешний ключ
- •1.5.3 Индексы
- •1.5. Реляционные связи
- •2. Структура базы данных biblio
- •3. Проверка корректности данных
- •3.1 Событие Validate
- •3.2. Событие Error
- •4. Ввод данных
- •5. Доступ к полям в объектах recordset
- •6. Введение в sql
- •Select (список полей) from (список таблиц) [where (выражение)]
- •11. Пример использования внутреннего объединения.
- •6.2. Использование sql-операторов
- •7. Усовершенствованные элементы управления, связанные с данными
- •7.1. Связанный с данными элемент управления List
- •7.3. Связанный с данными элемент управления Grid
- •8. Отображение баз данных
- •8.1 Объект Database
- •8.2 Объект TableDef: определение таблиц
- •8.2.1 Идексы таблицы
- •8.2.2 Поля таблицы
- •8.3 Объект QueryDef: определение запросов
- •8.4. Описание проекта dbStructure
1.4. Методы элемента управления Data
К встроенным функциональным возможностям элемента управления Data можно обращаться из кода приложения, используя методы Data. Самые простые методы - это методы перемещения, соответствующие действиям четырех кнопок перемещения:
MoveFirst. Перемещает элемент управления на первую запись.
MoveLast. Перемещает элемент управления на последнюю запись.
MovePrevious. Перемещает элемент управления на предыдущую запись.
MoveNext. Перемещает элемент управления на следующую запись.
Эти методы используются для реализации кнопок перемещения. В качестве примера использования методов элементов управления Data рассмотрим приложение Data2. Здесь сформирован интерфейс для управления таблицей Titles БД BIBLIO, которая содержит поля Title (название), ISBN (издательский код), Description (описание), Subject (дополнительное приложение к книге), Соmments (примечания). Для разработки формы приложения Data2 необходимо выполнить следующие действия. Поместите элемент Data и соедините его с БД BIBLIO, задав в свойстве DatabaseName путь к БД, а в свойстве RecordSource - таблицу Titles. Разместите в форме элементы управления, связанные с данными, и подключите их к Data, установив в их свойстве DataSource значение Datal, а в свойстве Datafield - отображаемые поля.
Рис. 2. Приложение Data2
Код приложения Data2 (обработка кнопок перемещения элемента управления Data)
Private Sub frstBttn_Click()
Data1.Recordset.MoveFirst
End Sub
Private Sub LastBttn_Click()
Data1.Recordset.MoveLast
End Sub
Private Sub NextBttn_Click()
Data1.Recordset.MoveNext
If Data1.Recordset.EOF Then
MsgBox "Достигнута последняя запись"
Data1.Recordset.MoveLast
End If
End Sub
Private Sub PreviousBttn_Click()
Data1.Recordset.MovePrevious
If Data1.Recordset.BOF Then
MsgBox "Достигнута первая запись"
Data1.Recordset.MoveFirst
End If
End Sub
Первые две подпрограммы обеспечивают перемещение соответственно на первую и последнюю записи. При нажатии клавиши Next в третьей подпрограмме выполняется перемещение на следующую запись, а затем проверяет свойство EOF.
Если EOF равно True, значит текущая запись располагается за последней. Программа отображает сообщение, что достигнута последняя запись, а затем возвращается на нее. Код для кнопки Previous такой же. Он вызывает метод MovePrevious, а вместо свойства EOF проверяет свойство BOF элемента управления Data.
В дополнение к методам перемещения элемент управления Data предоставляет четыре метода для поиска записей в RecordSet. Одна из основных операций, которые выполняются над БД, - нахождение требуемых записей. Следующие методы осуществляют нахождение записей, удовлетворяющих заданным критериям:
FindFirst - находит первую запись;
FindLast - находит последнюю запись;
FindNext - находит следующую запись;
FindPrevious - находит предыдущую запись.
Эти методы находят в RecordSet любую запись на основе критериев, заданных пользователем.
Синтаксис всех методов имеет вид
<Имя эл-та Data>.RecordSet.FindFirst <criteria>,
где параметр criteria - строковое выражение, определяющее отношение между значениями полей и константами. Следующее выражение находит первую запись в RecordSet поле State которой равно NY.
Datal.RecordSet.FindFirst "State = 'NY' "
Определенные пользователем критерии могут содержать несколько полей, логические операции и операции отношений. Следующий оператор находит первый счет, выданный (Invoice_Date) с 1997 года, общая стоимость (Invoice) которой превышает 1000 $:
Data1.RecordSet.FindFirst "Invoice_Date > '12/31/1996' And Invoice >= 1000"
В дополнение к обычным операциям отношений можно использовать оператор LIKE, который позволяет находить записи, удовлетворяющие шаблону. Например, для поиска любой книги в БД BIBLIO с наименованием, включающей словосочетание SQL, можно использовать выражение:
Data1.RecordSet.FindFirst "Title LIKE '*SQL*' "
Строка *SQL* - это шаблон для нахождения любого количества символов до и после символов SQL. То есть он соответствует наименованиям книг: “Введение в SQL”, “Овладение SQL-методами” или “SQL: Руководство пользователя”. В данном случае поиск методом Find был выполнен без учета регистра. Таким образом, параметр *SQL* соответствовал SQL, sql и Sql. Для изменения заданного по умолчанию режима поиска на сравнение без учета регистра используется оператор
