Категория:Работа с файлами DBF dBASE IV
В системt K3 для работы с базами данных используется два подхода: исторически сложившийся – работа с файлами типа DBF dBASE IV и унифицированная работа с базами данных посредством интерфейса ADO. В этом разделе рассматривается работа с файлами типа DBF dBASE IV.
Файл формата DBF представляет собой таблицу, которая имеет столбцы (поля) и строки (записи). В каждой записи данные одного поля имеют одни и те же характеристики. К характеристикам поля можно отнести:
- Имя поля. Строка до 10 символов. Может содержать только латинские буквы и цифры и начинаться с буквы. Используется для доступа к данным поля. При обращении к имени регистр букв игнорируется.
- Тип поля. Описывает тип данных, которые хранятся в соответствующем поле записи. В DBF используется множество типов данных, но K3 может работать с полями 3-х типов: числовые, строковые и логические. Вы не сможете создать в K3 новую таблицу с полями других типов. Открыть существующую таблиц с полями других типов возможно, но выбрать или записать информацию можно только для полей указанных типов.
- Длина поля. Определяет, сколько байт отводится в записи для хранения данных поля.
- Точность хранения чисел. Определяет, сколько знаков хранится в дробной части числа.
В процессе работы с таблицей нужно учитывать, что в конкретной записи конкретное поле может и не содержать никакого значения (быть неопределенным).
Средства работы с таблицами DBF в системе K3 можно разделить на несколько смысловых групп:
- Работа с наборами записей.
- Экспорт в DBF атрибутов объектов сцены.
- Использование таблиц констант.
- Использование библиотек прототипов.
Обзор средств работы с наборами записей
В K3 имеется несколько команд и функций, предоставляющих наиболее общие возможности для работы с таблицами DBF. Использовать данные средства можно только в процессе выполнения макрокоманды. Вызов из окна диалога возможен при условии, что выход в диалог был выполнен макрокомандой.
Доступ к данным таблицы осуществляется через набор записей – некую логическую структуру, создаваемую в памяти K3. Набор записей можно либо открыть на основе существующего файла DBF (команда DbOpen
), либо создать новый набор и новый файл таблицы (команда DbCreate
).
Можно одновременно работать с несколькими наборами записей. При открытии или создании набора, ему присваивается уникальный идентификатор. Все остальные команды и функции используют этот идентификатор в качестве входного параметра. В описании всех команд – это параметр <id>
.
Набор записей остается открытым до тех пор, пока его не закрыли с помощью команды DbClose
. При завершении работы макрокоманд все открытые наборы так же автоматически закрываются.
Каждой записи таблицы соответствует запись набора, но не наоборот. Управлять отбором записей из таблицы в открываемый набор можно с помощью фильтра, задать который можно либо при открытии набора, либо с помощью команды DbFilter
. Узнать количество записей, помещенных в набор, можно с помощью функции DbRecCount
.
Для получения различной информации о полях открытого набора используются функции DbFldCount
, DbFieldNum
, DbFieldName
, DbFieldType
, DbFieldSize
, DbFieldPrec
.
Открытый набор записей может находиться в одном из нескольких состояний:
1. Режим текущей записи. В каждый конкретный момент для работы доступна только одна запись набора (текущая запись). Сразу после открытия набора текущей является первая запись. Для установки текущей записи используются команды перемещения по набору (DbMove
, DbMoveFirst
, DbMoveNext
, DbMoveLast
, DbMovePrevious
), и команды поиска записи, удовлетворяющей определённым условиям (DbFindFirst
, DbFindNext
, DbFindLast
, DbFindPrevious
DbNomatch
). С каждой записью набора связано некое уникальное числовое значение (закладка). Закладку текущей записи можно узнать с помощью функции DbBookmark
. В дальнейшем её можно использовать для возврата к этой записи (DbMove
). Получить значение поля текущей записи можно с помощью функции DbGetValue
, при этом нужно учитывать, что значение может быть неопределено. Задать новое значение полю текущей записи можно с помощью команды DbSetValue
. Эта команда вносит изменения только в буфер текущей записи, который хранится в оперативной памяти. Для сохранения изменений в файле таблицы используется команда DbUpdate
. Если её не использовать, то при смене текущей записи все изменения будут потеряны.
2. Режим добавления новой записи. Перевести набор в этот режим можно с помощью команды DbAddNew
.
3. Состояния BOF, EOF. Возможна ситуация, когда ни одна запись набора не является текущей. Это может быть при открытии пустого набора, или же, если в результате перемещений по набору, Вы встали перед первой записью или после последней записи набора. Узнать, не находится ли набор в таком состоянии, можно с помощью функций DbBOF
, DbEOF
.
Для удаления записи, как из набора, так и из таблицы, используется команда DbDelete
.
Страницы в категории «Работа с файлами DBF dBASE IV»
Показано 7 страниц из 7, находящихся в данной категории.