Создание полей TDBF

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Создание полей TDBF

Сообщение ViruZ » 23.05.2007 13:48:28

Работаю с компонентом TDBF (Lazarus 0.9.22).
В режиме Runtime создается таблица с несколькими полями. При создании целочисельных и строковых полей проблем нет, а как создать поле формата NUMERIC 5.2? В документации такого описания я не нашел.
ViruZ
постоялец
 
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина

Сообщение ViruZ » 25.05.2007 14:35:57

Неужели никто не знает?
ViruZ
постоялец
 
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина

Сообщение v-t-l » 26.05.2007 19:33:24

DataType := ftFloat;
Size := 5;
Precision := 2;
v-t-l
энтузиаст
 
Сообщения: 740
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение ViruZ » 04.06.2007 11:12:25

TarifDbf.FieldDefs.Add('OKLAD1',ftFloat,5,2); - выдает ошибку
udata.pas(90,48) Error: Incompatible type for arg no. 4: Got "ShortInt", expected "Boolean"
ViruZ
постоялец
 
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина

Сообщение haword » 04.06.2007 12:09:02

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);
haword
постоялец
 
Сообщения: 301
Зарегистрирован: 02.03.2006 11:34:40

Сообщение ViruZ » 04.06.2007 12:36:50

v-t-l писал(а):DataType := ftFloat;
Size := 5;
Precision := 2;


не работает - выдает ошибку.
ViruZ
постоялец
 
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина

Сообщение v-t-l » 04.06.2007 13:22:18

Попробуй указать Precision после того, как добавишь поле.
Код: Выделить всё
TarifDbf.FieldDefs.Add('OKLAD1',ftFloat,5);
TarifDbf.FieldDefs[TarifDbf.FieldDefs.Count-1].Precision := 2;
v-t-l
энтузиаст
 
Сообщения: 740
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение ViruZ » 04.06.2007 13:44:57

Большое спасибо! Все работает!!!
ViruZ
постоялец
 
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина

Re: Создание полей TDBF

Сообщение Aleh » 17.08.2016 13:56:54

У меня возник такой вопрос как добавить поле в существую таблицу?
с созданием с нуля проблем нет. Например есть таблица с заполненными полями
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
Aleh
новенький
 
Сообщения: 53
Зарегистрирован: 08.08.2016 12:27:45

Re: Создание полей TDBF

Сообщение wavebvg » 17.08.2016 14:40:40

Исходя из структуры хранения данных в dbf можно предположить, что лучшим способом будет:

1. Создать пустую таблицу во временном файле с обновленной структурой
2. Скопировать все данные
3. Переименовать файлы
wavebvg
постоялец
 
Сообщения: 355
Зарегистрирован: 28.02.2008 04:57:35

Re: Создание полей TDBF

Сообщение Aleh » 17.08.2016 16:25:22

... для таблицы с 54 полями и одной записью (иногда 2-10) не будет.
Aleh
новенький
 
Сообщения: 53
Зарегистрирован: 08.08.2016 12:27:45

Re: Создание полей TDBF

Сообщение Lucifer » 17.08.2016 17:16:05

Присвоить дефолтные значения?
Lucifer
постоялец
 
Сообщения: 126
Зарегистрирован: 05.01.2014 21:39:03
Откуда: Новороссийск

Re: Создание полей TDBF

Сообщение Aleh » 17.08.2016 18:03:23

Хорошо. Но только теоретически. (На практике я сделать не смог)
Aleh
новенький
 
Сообщения: 53
Зарегистрирован: 08.08.2016 12:27:45


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 246

Рейтинг@Mail.ru
cron