Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.07;
Скачать: CL | DM;

Вниз

Table.Fields   Найти похожие ветки 

 
Fishka   (2002-10-18 09:47) [0]

Как корректно узнать размерность поля для DBF-файла? И точность для числовых полей?


 
Fishka   (2002-10-18 15:23) [1]

Может, кто-нибудь определял длину и точность поля?


 
Reindeer Moss Eater   (2002-10-18 15:27) [2]

TFieldDef.Precision, TFieldDef.Size


 
Fishka   (2002-10-18 16:51) [3]

TFieldDef.Precision, TFieldDef.Size выдает значение 0.



 
Reindeer Moss Eater   (2002-10-18 17:05) [4]

Значит у тебя DBase версии выше DBase III+ и TFloatField.
Для этого типа размеры предопределены заранее, так же как и для полей даты например.


 
Fishka   (2002-10-21 09:15) [5]

Как же все-таки узнать размерность полей, даже если DBase версии выше DBase III?


 
Reindeer Moss Eater   (2002-10-21 09:31) [6]

Посмотреть описание полей в любой документации по DBase.


 
Fishka   (2002-10-21 10:59) [7]

А при чем тут документация по DBase. Ну, тип Character или Numeric. Надо считывать информацию из заголовка dbf-файла.
А попроще никак?


 
Reindeer Moss Eater   (2002-10-21 11:04) [8]

Reindeer Moss Eater (18.10.02 17:05)


 
Fishka   (2002-10-21 11:55) [9]

А конкретно? Как мне узнать, что 1 поле Numeric(10,3), а пятое character (8).
(Тип могу узнать
Table1.Fields[0].DataType,Table1.Fields[4].DataType ).


 
Andrey ©   (2002-10-21 12:39) [10]

Была такая проблема.

uses DBIProcs;

*****

var fc: word;
fd,cf: PFLDDesc;
fidx: integer; // индекс интересующего Вас поля, нумерация с 0
begin
fidx:=0;
fd := AllocMem(fc*sizeof(FLDDesc));
Check(DBIGetFieldDescs(Table1.Handle,fd));
cf := PFLDDesc(integer(fd) + fidx*sizeof(FLDDesc));
ShowMessage(IntToStr(cf.iUnits2)); // Вот где собака зарыта ! (число дес. знаков после запятой)
if fd <> nil then FreeMem(fd,fc*sizeof(FLDDesc));
end;


 
Reindeer Moss Eater   (2002-10-21 12:57) [11]

Все сказанное Andrey годится только для TBCDField, для которых можно получить информацию и без вызовов BDE, а просто через свойства TFieldDef. А о размерах и знаках после запятой TFloatField ничего не узнаеть не удастся.


 
Andrey ©   (2002-10-21 13:21) [12]

>Reindeer Moss Eater
Именно для полей Float и можно получить информацию через BDE.


 
Fishka   (2002-10-21 14:06) [13]

Выдается ошибка.
А если взять пример Delphi Examples: DbiGetFieldDescs, то тоже выдается ошибка: An error ocurred while attempting to initialize the Borland DataBase Engine (error @2706).
Что делать?


 
Reindeer Moss Eater   (2002-10-21 15:11) [14]

>Andrey ©
У меня твой код выдает 0 знаков после запятой для полей экземпляров TFloatField. А для TBCDField дает верные значения.



Страницы: 1 вся ветка

Текущий архив: 2002.11.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
1-21547
kull
2002-10-28 18:51
2002.11.07
Я понимаю что подобное уже не раз спрашивали, но все же...


6-21719
kofman
2002-09-10 20:41
2002.11.07
Алгоритм поиска в тексте html-страниц банеров


1-21537
_saha_
2002-10-29 13:43
2002.11.07
ламерский вопрос


3-21371
{bas}
2002-10-17 12:57
2002.11.07
Русские буквы в ADO для DBase or FoxPro


1-21548
^Sanya
2002-10-28 17:22
2002.11.07
private vs implementation...