Текущий архив: 2004.07.18;
Скачать: CL | DM;
Вниз
Поле типа float фикс. размера (12,2). Найти похожие ветки
← →
kalishenko (2004-06-17 13:24) [0]При создании таблицы не получается создать поле типа float фикс. размера. Мне нужно, чтобы размер был 12,2. Пример кода:
procedure TForm1.Button1Click(Sender: TObject);
var Table: TTable;
begin
Table := TTable.Create(Self);
with Table do
begin
DatabaseName := "c:\temp";
TableName := "pay.DBF";
TableType := ttFoxPro;
with FieldDefs do
begin
Clear;
Add("rec_date", ftDate, 0, False);
Add("post_date", ftDate, 0, False);
Add("npp", ftString, 7, False);
Add("proj_type", ftString, 2, False);
Add("rnproj", ftSmallint, 0, False);
Add("client", ftString, 6, False);
Add("f_client", ftString, 6, False);
Add("cmp_name", ftString, 30, False);
Add("fname", ftString, 24, False);
Add("dep_number", ftString, 4, False);
Add("tab_number", ftString, 5, False);
Add("amount", ftFloat, 0, False);
Add("currency", ftString, 3, False);
Add("reference", ftString, 20, False);
Add("branch", ftString, 5, False);
Add("operator", ftString, 10, False);
end;
CreateTable;
Free;
end;
ShowMessage("Ok!");
end;
Вопрос стандартный: как быть?
← →
Reindeer Moss Eater © (2004-06-17 13:29) [1]Прочитай пояснение к атрибутам Size и Precision.
Для ftFloat они вообще неактуальны.
Использовать надо ftBCD тип.
← →
kalishenko (2004-06-17 13:45) [2]Что-то не так делаю:
with AddFieldDef do
begin
Name :="amount";
DataType := ftBCD;
Size := 12;
Precision := 2;
end;
Все равно в итоге получаю поле размером 20,4.
← →
Reindeer Moss Eater © (2004-06-17 14:19) [3]А ты прочитал что такое Size и что такое Precision?
← →
kalishenko (2004-06-17 15:15) [4]Да, читал. Только так и не понял до конца.
For a BCD field, Size is the number of digits following the decimal point.
Т.е. Size - число цифр после запятой.
When defining a BCD field, set Precision to the total number of digits stored for each field value.
Т.е. по-идее, Precision - общее кол-во цифр поля.
Но, когда ставлю
Size := 2;
Precision := 14;
все-равно дает мне 20,4. Может все дело в типе таблицы ttFoxPro?
← →
kalishenko (2004-06-17 16:22) [5]Главное в Database Desktop-е все нормально создается, только вот типа BCD у Фокспро нет. Делаю тип Numeric и ставлю размер 12 и 2. Но ведь так не интересно (ч/з Database Desktop). Попробовал через SQL-запрос, но не знаю как создать таблицу типа ttFoxPro. Поможите...
← →
kalishenko (2004-06-17 16:56) [6]И еще. Поменял тип таблицы на ttBase - получил поле нужного размера. Но сама таблица вышла типа DBase для Windows. А мне нужно DBase III для DOS...
← →
Anatoly Podgoretsky © (2004-06-17 16:59) [7]Смени драйвер по умолчанию или переходи на БДЕ
← →
kalishenko (2004-06-17 17:03) [8]А на какой именно поменять и что значит "переходи на БДЕ
"?
← →
kalishenko (2004-06-17 18:32) [9]Неужели никто не знает?
← →
HSolo © (2004-06-18 09:34) [10]Попробуйте SQL-запросом:
alter table таблица add поле numeric(12,2)
← →
Anatoly Podgoretsky © (2004-06-18 09:35) [11]BDE это библиотека доступа, работай напрямую с ней, а не с VCL
← →
Anatoly Podgoretsky © (2004-06-18 09:37) [12]Твои слова "А мне нужно DBase III для DOS..." вот на него и меняй
Страницы: 1 вся ветка
Текущий архив: 2004.07.18;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.045 c