Смекни!
smekni.com

Курс лекций по V B 5.0 (стр. 5 из 11)

Хранилище данных - это файл или файлы, непосредственно создание таблицы БД. Для внутренней БД VB или MS Access - это файл формата .mdb. Для других баз это может быть каталог, содержащий файлы .dbf.

Архитектура доступа к данным в VB

Схема доступа к данным в приложении VB

пользователь

интерфейс

процессор БД

хранилище данных

Процессор БД располагается между прикладной программой и физическими файлами БД. Этим определяется независимость приложения от типа БД, к которой происходит обращение. Вне зависимости от формата БД в приложении используются одни и те же объекты доступа к данных и методы программирования.

Управление пользовательским интерфейсом осуществляется кодом VB, который манипулирует объектами и методами доступа к данным и запрашивает услуги БД, например, добавление или удаление записей или выполнение запросов. Запросы услуг адресуются не файлу БД, а процессору Jet, который выполняет запрошенные операции по обработке данных и возвращает результаты приложению.

Процессор БД Jet реализован в виде набора файлов динамических библиотек .dll, которые связываются с приложением VB в процессе выполнения Dao в физические операции непосредственно с файлами БД данного формата.

Программирование работы с БД в VB заключается в создании объектов Dao, таких как Database, TableDef, Field и Index. Свойства и методы этих объектов используются для выполнения операций в БД. Результат этих операций можно вывести на экран, а данные пользователя вводятся через формы VB. Это дает большую гибкость, т.к. одни и те же объекты, свойства и методы можно использовать для доступа к БД различных форматов. Можно также создавать приложения, в которых в единственном запросе или отчете соединяются таблицы из двух и более различных БД.

VB через DAO и Jet работает со следующими БД:

1) БД VB - внутренние БД. Формат, что и у MS Access. Создаются и управляются непосредственно процессором Jet.

2) Внешние БД ISAM (индексно-посреднические организации), включая Btrieve, dBase, FoxPro 2. , 3. , Paradox. Эти БД можно создавать и обрабатывать в VB. Можно также обращаться к текстовым источникам данных и .... MS Excell и Lotus-1, 2, 3.

3) БД ODBC - интеллектуальные БД клиент-сервер: MS SQL Server, Oracle, поддерживающие стандарт ODBC.

Новый режим DAO - ODBC Direct позволяет обращаться к источникам данных ODBC, минуя процессор Jet.

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

В процессе обработки запроса процессор Jet выдает подмножество одной из таблиц БД, хотя уже существует или временно создает новую сетку (просмотр) в памяти в виде комбинации данных из разных таблиц. Сетки, состоящей из записей, которые были извлечены из БД, соответствует объект VB RecordSet. Если сетка является дополняемой, то она называется dynaset, в противном случае - snapshop/

Доступ к БД с помощью элемента управления данными Data без программирования

Элемент управления Data ничего не отображает, а только сопровождает поток информации между приложением и БД. Для отображения информации из БД на экране используются связанные элементы управления, т.е. элементы управления, которые могут работать с элементом управления Data. Они называются data aware или data bound. К связанным элементам управления относятся: текстовые поля, надписи, флажки, элементы управления изображением, графические окна, списки, комбинированные списки, OLE. Связанные элементы должны находиться на той же форме, что и Data. Информация из БД посредством элемента управления Data будет передаваться связанному элементу и сохраняться в его свойствах (хотя он может быть невидим).

После размещения элемента управления Data на форме необходимо задать его свойства:

DataBaseName - имя БД, к которой необходимо подключиться.

RecordSource - для определения таблицы или запроса к БД, в том числе SQL-запросы.

Затем к форме добавляется связанной элемент управления и привязывается к элементу управления Data, для чего:

Свойство DataSource устанавливается по имени элемента управления Data.

Свойство DataField устанавливается по имени столбца из RecordSource.

После выполнения операции привязки, нажатие на стрелки элемента управления Data (< - первая запись, < - ... запись, > - следующая запись, > - последующая запись), будет изменять содержимое связанного элемента управления.

Другие свойства элемента управления Data.

Connect - определяет тип БД, например, FoxPro 3.0.

Exclusive = True - запрет доступа к БД, пока пользователь ее не закроет (после этого необходимо ... Share.exe)

ReadOnly (True/False)

RecordSetType - если RecordSet создается с помощью кода или элемента управления.

Метод Refresh- по этому методу все связанные элементы формы обновляют свое состояние в соответствии с текущим состоянием таблицы.

Data1.Refresh.

Он открывает БД, а также устанавливает указатель записи на первую строку в таблицу или сети просмотра.

Свойство RecordSet объекта Data - это воображаемая таблица, к которой подключен элемент Data. Это может быть реальная таблица из RecordSource или сетка просмотра, определяемая SQL-выражением.

Методы RecordSet

AddNew - очистка буфера копирования, содержащего данные, которые должны быть записаны в БД, и перемещение текущей записи в конец. = Добавление записи, которая становится текущей.

Data1.RecordSet.AddNew.

Delete - удаление текущей записи.

Update - реальная пересылка содержимого буфера копирования в таблицу или dynaset.

Edit - копирует текущую запись в буфер копирования для возможности ее редактирования.

MoveNext - перейти на следующую запись

MovePrevious - перейти на предыдущую запись

MoveLast - перейти на последнюю запись

MoveFirst - перейти на первую запись

BOF - начало файла.

EOF - конец файла.

RecordCount - количество записей с первой до текущей.

Пример. Удаление всех записей в таблице.

Data1.RecordSet.MoveFirst

Do While Data1.RecordSet.EOF

Data1.RecordSet.Delete

Data1.RecordSet.MoveNext

Loop

Свойство RecordSource - источник записей, позволяет помимо таблиц БД использовать операторы SQL, чтобы выделить подмножество записей, удовлетворяющих некоторым условиям. Это позволяет создавать программные элемента dynaset или snapshop.

Ввод следующий фраз:

Select - отбор информации из полей.

From - указывает имя таблицы.

Where - определяет условия выборки.

Group By - для распределения выбранных записей в определенные группы.

Having - определяет условие, которому должна удовлетворять следующая группа записей.

Order By - порядок сортировки выбранных записей.

Например.

Data1.RecordSource = “Select Name, Address From AdressBook ...

Data1.RecordSource = “Select Name, Address From AdressBook

Data1.RecordSource = “Select Name, Address From AdressBook Where Name = ‘Иванов’‘’

“ . . . . Like ‘’Иван” (Ивасев, Иваницкий, Иванченко...)

Select Employers.Dept, M&bsol;Name From Supervisors, Employers Where Employers.Dept = Supervisiors.Dept

Можно использовать переменные

Data1.RecordSource = “Select * From Telephone Where Name = ‘ “& A &”’”

Text1.Text

В фразе Where можно использовать конечные операции And, Or, Not для соединения нескольких выражений или операции сравнения <, <=, >, >=, <>, Between, Like, In (для записей в БД)

Например

Data1.RecordSource = “Select * From Products

Where Tovar in (Select Tovar From_ Details Where Price>=25)”

Помимо запросов SQL можно изменять (Update, Set - новое значение Where), добавлять (Insert into), удалять (Delete From) записи в таблице.

Например

Dim A As String

A = “Update Orders”

A = A + “Set Amount = Amount * 1.1, Cast = Cast * 0.97”

A = A+ ”Where Order = ‘Цемент’”

Data1.Database.Execute ... Query - запрос с воздействием

Свойство Value

Можно ссылаться на некоторое поле текущей записи, даже если на форме нет связанного элемента.

Например

Sub

Dim A As String

A = Data1.RecordSet.Fields(“Name”).Value

MsgBox “Фамилия: ” + A

End Sub

Объектная модель DAO

Объектная модель DAO - объектно - ориентированный интерфейс процессора БД Jet . Это иерархия классов, которые являются логическим представлением реляционной модели базы данных. [AAnA1] Эти классы используются для создания объектов доступа к данным, обращающихся к конкретной базе данных.

DBEngine[AAnA2]


Workspace


Database