BP(R) DBF для VB6
(c) BASIC Production 27/03/2005
Класс для работы с файлами формата DBF.
Содержание
----------
1. Введение.
2. Подключение класса.
3. Создание, открытие и закрытие базы.
4. Работа с несколькими базами одновременно.
5. Функции обслуживания базы данных.
1. Введение.
------------
Файл формата DBF является базой данных. Состоит он из заголовка, описателей полей и записей. В классе BPDBF записи обозначаются как ряды(Rows), а поля как колонки(Cols или Columns). Каждая запись состоит из фиксированного количества полей фиксированный длины, что свидетельствует о постоянном размере записи независимо от её значения.
1. Заголовок - служебная информация
2. Описатель полей - информация о полях в записи
3. Записи - Поле/Поле/.../Поле
В заголовке хранится служебная информация; в описателях полей имена, типы и длины каждого поля в записи; а в самой записи - непосредственно значения. Стурктуру базы можно представить как таблицу с фиксированным количеством колонок и неограниченным количеством рядов. Например если вы создали базу данных и в описателе полей у вас описано два поля, то все записи в базе будут иметь два поля.
Каждое поле имеет свой тип данных, который указывается в описателе полей. Эти типы влияют на поля в записях.
Запись - Поле Типа1/Поле Типа2/.../Поле ТипаN
Поля следующих типов могут быть в базе данных:
- Строка; поле может иметь любую длину
- Дата; фиксированной длины (8 символов) в формате ГГГГММДД
- Дробное число; двоичное представление дробного числа
- Логический; ? Y y N n T t F f (? - не инициализировано)
- Мемо; фиксированной длины (10 символов), содержат номер 512-байтного блока в индексном файле
- Числовой; целые числа в десятичном представлении (-.0123456789).
2. Подключение класса
---------------------
Добавьте в проект модуль BPDBF.CLS.
В модуле формы объявите объектную переменную ссылкой на класс:
Private MyDBF
As BPDBF
В форме (например в Form_Load) создайте новый экземпляр класса:
Set MyDBF =
New BPDBF
Подключение совершено. Для обращения к методам и свойствам объекта введите имя переменной и нажмите точку.
MyDBF.
3. Создание, открытие и закрытие базы.
--------------------------------------
3.1 Создание базы.
Перед созданием базы необходимо предварительно создать колонки (поля) записи с помощью метода AddColumn, в противном случае база не будет создана.
MyDBF.EraseColumns
MyDBF.AddColumn "Column 1", N_Decimal, 1
MyDBF.CreateDBF "Test1.DBF"
В этом примере будет создана база в которой каждая запись будет содержать одно поле в числовом формате длиной 1 байт.
3.2 Открытие базы
MyDBF.OpenDBF "ИмяБазы"
3.3 Закрытие базы
MyDBF.CloseDBF
4. Работа с несколькими базами одновременно.
--------------------------------------------
Построение класса BPDBF позволяет работать одновременно только с одним файлом базы данных. Для одновременной работы с несколькими базами создайте необходимое количество объектных переменных.
Private MyDBF
As BPDBF, MyDBF2
As BPDBF
Private Sub Form_Load()
Set MyDBF =
New BPDBF:
Set MyDBF2 =
New BPDBF
End Sub
5. Функции обслуживания базы данных.
------------------------------------
Ниже перечислены функции обслуживания базы данных по группам.
5.1. Функции работы с описателем полей. Эти функции доступны только при закрытой базе.
AddColumn - добавляет информацию о новом поле в описатель полей.
Параметры:
Caption - Имя (до 11 символов)
ColType - поддерживаемый тип данных
Length - длина поля
DecimalCount - длина дробной части после точки
RemoveColumn - уменьшает счётчик полей в описателе полей на 1.
ResetColumns - сбрасывает счётчик полей в описателе полей без очистки самих полей.
EraseColumns - очищает описатель полей.
5.2. Подготовительные и завершающие функции.
CreateDBF - создаёт пустую базу данных.
Параметры: FileName - имя файла для новой базы
OpenDBF - открывает существующую базу данных
Параметры: FileName - имя файла базы данных
CloseDBF - закрывает открытую ранее базу данных.
5.3. Работа с записями.
AddEmptyRows - добавляет указанное количество пустых записей в базу.
AddRow - добавляет одну запись в базу
Параметры: RowCols - строка, содержащая значение записи. Например если запись состоит из 3-х полей длиной 1,2 и 3 байта, то в строке должны быть в первом символе - значение поля1, следующие 2 символа - поля2 и следующие 3 символа - поля3.
 
eleteRow - помечает (или снимает пометку) запись как удалённую
Параметры:
RowNumber - Номер записи
DeleteFlag - Истина - установить пометку на удаление; Ложь - снять пометку
GetRow - получить строку записи
Параметры:
RowNumber - номер записи
UseOEM - переводить из кодировки ДОС в Windows
GetRowCols - получить в массив все поля записи
Параметры:
ColumnsArray() - любой строчный массив-приёмник
RowNumber - номер записи
UseOEM - переводить из кодировки ДОС в Windows
GetColumn - получить поле записи по номеру поля
Параметры:
RowNumber - номер записи
ColNumber - номер поля в записи
UseOEM - переводить результат из кодировки OEM в Windows
ReplaceRow - заменить значение поля на новое
Параметры:
RowNumber - номер записи
Value - значение записи
UseOEM - переводить из кодировки Windows в ДОС
ReplaceRowCols - заменить все поля записи на новые из массива
Параметры:
ColumnsArray() - строчный массив-источник
RowNumber - номер записи
UseOEM - переводить из кодировки Windows в ДОС
ReplaceColumn - заменить значение поля в записи
Параметры:
RowNumber - номер записи
ColNumber - номер поля
Value - новое значение
5.4. Информационные и служебные
 
atabaseName - возвращает имя открытой базы;
IsDbfOpen - возвращает истину если база открыта;
RowsCount - возвращает количество записей в базе;
ColumnsCount - возвращает количество полей в записи;
GetColName - возвращает имя поля (из описателя полей) по указанному индексу;
GetColSize - возвращает длину поля по указанному индексу;
GetColType - возвращает тип поля по указанному индексу;
IsRowDeleted - возвращает наличие отметки удаления в записи;
 
efrag - физически удаляет помеченные на удаление записи;