Команды работы с наборами записей
Для работы с наборами записей существуют команды dbCreate, dbOpen, dbClose, dbFilter.
dbCreate <ID> <FileName> <Field1>, <Field2>, ..., <FieldN> done
Команда создает новую пустую таблицу базы данных в формате "DBF" с именем <FileName>
и описаниями полей <Field1>
, <Field2>
, ..., <FieldN>
. После создания таблица открывается и ей присваивается идентификатор <ID>
. В качестве идентификатора указывается переменная, которой присваивается значение созданного или открытого набора записей.
Описание полей <Field>
имеет следующий формат:
<Name> <Type> [<Size> [<Prec>]]
<Name>
- строка с именем поля (до 10 символов)<Type>
- тип поля. Тип поля задается либо ключом, либо строкой из одного символа. Возможные значения типа поля:real
или "r" - числовое полеstring
или "s" - строковое поляlogical
или "l" - логическое поля
<Size>
- размер поля (в символах) . Размер поля имеет смысл только для строковых и числовых полей и не может превышать 255 символов.<Prec>
- точность представления (в символах). Точность представления имеет смысл только для числовых полей и указывает количество знаков после десятичной точки.
dbOpen <ID> <FileName> [readonly] [<Filter>]
Команда открывает набор записей для существующей "DBF" таблицы с именем <FileName>
и фильтром (если указан) <Filter>
. Необязательный ключ readonly
открывает набор записей только для чтения. То есть внести изменения в такой набор записей не получится. После открытия набору записей присваивается идентификатор <ID>
.
Фильтр <Filter>
- это строка, которая содержит текст логического выражения, где в качестве переменных используются имена полей таблицы. Если для конкретной записи таблицы значение выражения не равно нулю, эта запись помещается в открываемый набор. Иначе - не помещается. Предположим, например, что таблица имеет строковое поле Name и числовое поле Age. Выражение "(Age>30)&&(Left(Name,1)==\"И\")"</same>, используемое в качестве фильтра, помещает в набор только те записи таблицы, у которых значение поля Age больше 30 и первая буква в поле Name - "И".
dbFilter <ID>, <Filter>
Команда переформирует ранее открытый набор записей с идентификатором <ID>
., помещая в него только те записи набора, которые удовлетворяют условию, заданному в строке <Filter>
. (см. выше)
dbClose <ID>
Команда закрывает открытый набор записей с идентификатором <ID>
.