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();