![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поле типа float фикс. размера (12,2). [D6, dBase, FoxPro]
kalishenko © (2004-06-17 13:24:00)При создании таблицы не получается создать поле типа 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;
Вопрос стандартный: как быть?
Anatoly Podgoretsky (2004-06-18 09:37:00) [1]Твои слова " А мне нужно DBase III для DOS..."вот на него и меняй
Anatoly Podgoretsky (2004-06-18 09:35:00) [2]BDE это библиотека доступа, работай напрямую с ней, а не с VCL
HSolo (2004-06-18 09:34:00) [3]Попробуйте SQL-запросом:
alter table таблица add поле numeric(12,2)
kalishenko (2004-06-17 18:32:00) [4]Неужели никто не знает?
kalishenko (2004-06-17 17:03:00) [5]А на какой именно поменять и что значит "переходи на БДЕ
"?
Anatoly Podgoretsky (2004-06-17 16:59:00) [6]Смени драйвер по умолчанию или переходи на БДЕ
kalishenko (2004-06-17 16:56:00) [7]И еще. Поменял тип таблицы на ttBase - получил поле нужного размера. Но сама таблица вышла типа DBase для Windows. А мне нужно DBase III для DOS...
kalishenko (2004-06-17 16:22:00) [8]Главное в Database Desktop-е все нормально создается, только вот типа BCD у Фокспро нет. Делаю тип Numeric и ставлю размер 12 и 2. Но ведь так не интересно (ч/з Database Desktop). Попробовал через SQL-запрос, но не знаю как создать таблицу типа ttFoxPro. Поможите...
kalishenko (2004-06-17 15:15:00) [9]Да, читал. Только так и не понял до конца.
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?
Reindeer Moss Eater (2004-06-17 14:19:00) [10]А ты прочитал что такое Size и что такое Precision?
kalishenko (2004-06-17 13:45:00) [11]Что-то не так делаю:
with AddFieldDef do
begin
Name :='amount';
DataType := ftBCD;
Size := 12;
Precision := 2;
end;
Все равно в итоге получаю поле размером 20,4.
Reindeer Moss Eater (2004-06-17 13:29:00) [12]Прочитай пояснение к атрибутам Size и Precision.
Для ftFloat они вообще неактуальны.
Использовать надо ftBCD тип.