Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
7-21844
Алмаз
2002-09-04 16:33
2002.11.07
использование звуковой карты


1-21627
-Alex-
2002-10-26 17:10
2002.11.07
Перехват второй копии и запуск функции.


14-21734
Николай Быков
2002-10-17 17:42
2002.11.07
Оцените....


1-21584
Vint
2002-10-28 16:57
2002.11.07
QuickReport


14-21747
Beginner-Designer
2002-10-18 10:51
2002.11.07
Способы ввода URL a





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский