DBF.AddField

From SunFlurry wiki
Jump to: navigation, search
  AddField (Добавление полей)
Объект:DBF
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку, число, неверные аргументы
Визуальность:Нет

Функция добавляет новое поле в текущий файл. Если в файле существуют записи, новое поле будет заполнено пустыми значениями.

Синтаксис

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 байт.

Примеры

ПостИмяОст:="Остатки на "+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();