Difference between revisions of "DBF.AddField"
m (1 revision imported) |
|
(No difference)
|
Latest revision as of 07:43, 7 February 2021
AddField (Добавление полей) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция добавляет новое поле в текущий файл. Если в файле существуют записи, новое поле будет заполнено пустыми значениями.
Синтаксис
DBF.AddField(<Индекс нового поля (INT)>,<Наименование нового поля (STRING)>,<Тип данных нового поля (STRING)>)
Аргументы
<Индекс нового поля (INT)>
- (необязательный аргумент) Аргумент задает индекс вставки нового поля. К примеру, если индекс равен 1, поле будет вставлено, как первое, остальные существующие поля будут сдвинуты. По умолчанию -- 0 (добавлять поле в конец списка полей).<Наименование нового поля (STRING)>
- Аргумент задает наименование нового поля. Размер записи о наименовании поля в файлах формата DBF всего 10 байт, можно задавать имена с большим количеством символов, однако, при сохранении таблицы на диск, имя будет усечено до максимального возможного. Имя поля не может быть задано в UTF-16, а только в кодировке ANSI. Наиболее совместимые имена заданы в ASCII и переведены в верхний регистр, однако, функция позволяет использовать не только символы ASCII и различает регистры написания поля, -- выбор имени остается за разработчиком. Функция проверит существование имени поля и создаст исключение, если поле с таким именем уже существует, но даже эту проверку можно обойти, задав поля с именами более 10 символов, имеющие отличия в именах за пределами 10 символов.<Тип данных нового поля (STRING)>
- Аргумент задает тип данных создаваемого поля. Тип данных задается в нотации системы в следующем виде:<Наименование типа>[.<Свойство типа>]
. Доступны следующие типы данных:- NUMBER или NUM, задает числовое поле. Свойство типа записывается в виде
<Количество знаков в поле>.<Количество знаков после десятичной точки>
. Максимальное количество знаков в числе, поддерживаемое форматом, равно 16. Если количество знаков будет равно нулю, будет использован произвольный формат вещественных чисел. - FLOAT, задает вещественное числовое поле. Свойство типа записывается в виде
<Количество знаков в поле>.<Количество знаков после десятичной точки>
. Максимальное количество знаков в числе, поддерживаемое форматом, равно 16. - INTEGER или INT, задает целочисленное поле. Поле будет иметь размер 10 байтов.
- REAL, задает вещественное числовое поле с максимально доступным размером - 16 байтов.
- DATE, задает поле типа дата. Поле будет иметь размер 8 байтов.
- STRING или STR, задает строковое поле. Такие поля не могут содержать UTF-16 или UTF-8 символы. Свойство типа записывается в виде
<Количество знаков в поле>
. Максимальное количество знаков в поле равно 254. - BOOLEAN или BOOL, задает булево поле. Поле будет иметь размер 1 байт.
- NUMBER или NUM, задает числовое поле. Свойство типа записывается в виде
Примеры
ПостИмяОст:="Остатки на "+FormatDate(КонДата,"YYYY-mm-dd")+".dbf"; бРезОст:=dbf.Create(); бРезОст.FileName:=Каталог+ПостИмяОст; бРезОст.Codepage:=1251; бРезОст.AddField(,"dDate","DATE"); бРезОст.AddField(,"cItemName","STRING.250"); бРезОст.AddField(,"nQty","NUMBER.15.0"); ... З:=Query.Create(); З.Execute(ТЗ); While З.Next(1) Do While З.Next(2) Do зКл:=З.зКлКО; If зКл<=0 Then Continue; EndIf; зН:=З.зН; бРезОст.AddRecord(,"dDate,cItemName,nQty",З.День,зН.ПолнНаименование,зКл); EndDo; EndDo; бРезОст.Save(); бРезОст.Close();