Создание полей TDBF
Модератор: Модераторы
-
ViruZ
- постоялец
- Сообщения: 175
- Зарегистрирован: 30.05.2005 17:41:12
- Откуда: Украина
- Контактная информация:
Создание полей TDBF
Работаю с компонентом TDBF (Lazarus 0.9.22).
В режиме Runtime создается таблица с несколькими полями. При создании целочисельных и строковых полей проблем нет, а как создать поле формата NUMERIC 5.2? В документации такого описания я не нашел.
В режиме Runtime создается таблица с несколькими полями. При создании целочисельных и строковых полей проблем нет, а как создать поле формата NUMERIC 5.2? В документации такого описания я не нашел.
ViruZ писал(а):TarifDbf.FieldDefs.Add('OKLAD1',ftFloat,5,2); - выдает ошибку
udata.pas(90,48) Error: Incompatible type for arg no. 4: Got "ShortInt", expected "Boolean"
Creates a new field definition object and adds it to the Items property.
Delphi syntax:
procedure Add(const Name: String; DataType: TFieldType; Size: Integer = 0; Required: Boolean = False);
Попробуй указать Precision после того, как добавишь поле.
Код: Выделить всё
TarifDbf.FieldDefs.Add('OKLAD1',ftFloat,5);
TarifDbf.FieldDefs[TarifDbf.FieldDefs.Count-1].Precision := 2;
У меня возник такой вопрос как добавить поле в существую таблицу?
с созданием с нуля проблем нет. Например есть таблица с заполненными полями
1 OBJECTID Numeric 9
2 ADDRESS Character 200
3 NUM Numeric 9
4 SUBJ Character 254
Надо добавить
5 LOTNOTE Character 200
6 DOCAREA Float 13.11
7 DELTAREA Float 13.11
8 BORDERTYPE Numeric 4
9 USERN_1 Numeric 9
с созданием с нуля проблем нет. Например есть таблица с заполненными полями
1 OBJECTID Numeric 9
2 ADDRESS Character 200
3 NUM Numeric 9
4 SUBJ Character 254
Надо добавить
5 LOTNOTE Character 200
6 DOCAREA Float 13.11
7 DELTAREA Float 13.11
8 BORDERTYPE Numeric 4
9 USERN_1 Numeric 9
Исходя из структуры хранения данных в dbf можно предположить, что лучшим способом будет:
1. Создать пустую таблицу во временном файле с обновленной структурой
2. Скопировать все данные
3. Переименовать файлы
1. Создать пустую таблицу во временном файле с обновленной структурой
2. Скопировать все данные
3. Переименовать файлы
... для таблицы с 54 полями и одной записью (иногда 2-10) не будет.
Присвоить дефолтные значения?
Хорошо. Но только теоретически. (На практике я сделать не смог)
