![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Float поля в DBase [dBase, FoxPro]
KADAN © (2004-01-29 09:37:00)
Драссе, мастера! Знаю, что DBase такие поля делаются как N(10,2)
Не могу етого сделать из Delphi. Делается только так:
FieldDefs.Clear;
FieldDefs.Add("DATE",ftDate);
FieldDefs.Add("PRIXOD",ftFloat);
FieldDefs.Add("RASXOD1",ftFloat);
FieldDefs.Add("RASXOD2",ftFloat);
FieldDefs.Add("SALDO",ftFloat);
FieldDefs.Add("NOTE",ftString,20);
CreateTable;
И после етого могу писать table1.FieldByName("PRIXOD").AsFloat и все работает. Хотя когда открываю в Database Desktop"е значение типа поля оказывается не указанным вообще. А теперь, внимание, вопрос: не аукнется ли мне такой неуказанный Float в будущем, и если да, то как сделать нормальный N(10,2)???
KADAN (2004-01-29 10:54:00) [1]
Ладно, я разобрался с тем что надо юзать ftBCD, но тогда у меня поле становится 20 и 4, ето для меня много...
with Fielddefs.AddFieldDef do begin
DataType:=ftBCD;
Name:="PRIXOD";
Size:=10;
Precision:=2;
end;
KADAN (2004-01-29 10:28:00) [2]
И, кстати, если в Query делать "PRIXOD" NUMERIC(10,2), В dbd32 опять не показыавется тип поля... :(
KADAN (2004-01-29 10:26:00) [3]
Ну хорошо, пусть Numeric, я имел ввиду, что мне надо поле вида ХХХХХХХХХХ.ХХ, а с AddFieldDef та же ерунда, там только один Size.
Anatoly Podgoretsky (2004-01-29 10:06:00) [4]
N(10,2) это не float поля, а Numeric (BCD)
Add is provided for backward compatibility. The recommended way to add new field definitions to the Items property array is using the AddFieldDef method.