Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

dBase [dBase, FoxPro]


Викт0р ©   (2002-08-25 23:46:00) 

Как програмно создать таблицу формата dBase4? Пробовал:

with Table1 do
begin Active := False;
TableName := "Tabele.dbf";
TableType := ttdBase;
with FieldDefs do
begin
Clear;
Add("LOGICDATE", ftDate,0, False);
Add("DEPART", ftString, 2, False);
Add("CODE", ftString, 4, False);
Add("PRICE", ftFloat,0, False);
Add("QNT", ftFloat,0, False);
Add("DELETED", ftFloat,0, False);
end;
CreateTable;
Free;
end;
Создается таблица dBase for Windows.
Объясните пожалуйста в чем дело и как правильно.


deleon   (2002-08-27 08:36:00) [1]

Чтобы создать таблицу dBase4 необходимо установить свойства
TTable :
TableLevel := 4;
TableType := ttDBase;
а затем вызвать метод CreateTable


Викт0р   (2002-08-26 12:21:00) [2]

ivv,

PRICE(8,2) - это где указывать?


ivv   (2002-08-26 10:55:00) [3]

PRICE (8,2)


ivv   (2002-08-26 10:53:00) [4]

q := TQuery.Create(nil);

q.Databasename := "sample";

q.SQL.Text := "create "
"table Tabele ("
"LOGICDATE Date,"
"DEPART String,"
"CODE String,"
"PRICE Float,"
"QNT Float,"
"DELETED Float"
")";
try
q.ExecSQL;
funally
freeandnil(q);
end;


ivv   (2002-08-26 10:50:00) [5]

SQL :
create
table Tabele (
LOGICDATE Date,
DEPART String,
CODE String,
PRICE Float,
QNT Float,
DELETED Float
)


Reindeer Moss Eater   (2002-08-26 10:48:00) [6]

1. Читать описание TFieldDef
2. Исползовать тип ftBCD


Викт0р   (2002-08-26 10:43:00) [7]

на счет символов после запятой: поле я не сказал, что PRICE еще должно быть численого типа. Я писал ftInteger, ftFloat указываешь size:=2 (даже любой другой отличный от нуля)и при создании таблицы выскакивает: ...Invald field size.
Чтот надо делать?


Reindeer Moss Eater   (2002-08-26 10:24:00) [8]

TFieldDef.Size:=2;
TFieldDef.Precision:=8;


Викт0р   (2002-08-26 10:19:00) [9]

Спасибо. Еще такой вопрос: требуется чтотбы, например, поле PRICE имела длину 8 символа и два символа после запятой. Как и где это указать?


Kuusiniemi   (2002-08-26 10:08:00) [10]

В BDEAdministrator для драйвера dBase выставляется параметр Level. Насколько помнится он по умолчанию равен 7 (dBase for Windows). Вам, насколько мне помнится, там надо выставлять то ли 3, то ли 4.


Наверх

Титульная страница Поиск, карта сайта Написать письмо