Форум: "Базы";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c