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

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

FieldKind:=ftCalculated [D7, dBase, FoxPro]


Kapitan ©   (2003-04-24 17:05:00) 

Работаю с TDBF (не важно впринципе тоже самое и с TTable)
Делаем приблизительно следующее:
Dbf.FilePath:=ExtractFilePath(Name);
Dbf.TableName:=ExtractFileName(Name);
Dbf.FieldDefs.Add("COMPLY",ftInteger,0,false);
Поле добавил, а как теперь сделать его САБЖЕМ ? Чтобы потом можно было обрабатывать в OnCalcFields. Естно интерисует только Run-time вариант.


Kapitan   (2003-04-24 17:33:00) [1]

Ок спасиба, понял. Тогда если можно вопрос вытекающий. Как добавить все поля из FieldDefs ? Суть в том что в подключаемой таблице уже есть поля и мне нужно добавить два вычисляемых поля. При добавлении методом описаным выше только мои два поля и есть. И как потом очистить список полей, чтобы при подключении другой таблицы с другими полями не возникало проблем ?


Соловьев   (2003-04-24 17:07:00) [2]


MySql := TQuery.Create(FirstForm);
with MySql do
begin
DataBaseName := "cadr";
AutoCalcFields := true;
OnCalcFields := MyCalcFields;
with FieldDefs do
begin
Add("phone", ftFloat, 0, true);
FieldDefs[0].CreateField(MySql);

Add("FIO", ftString, 100, true);
FieldDefs[1].CreateField(MySql);

Add("N_D", ftString, 100, true);
FieldDefs[2].CreateField(MySql);

Add("L_of_S", ftString, 100, true);
FieldDefs[3].CreateField(MySql);

Add("NOTE", ftString, 100, true);
FieldDefs[4].CreateField(MySql);

Add("TYPE", ftString, 100, true);
FieldDefs[5].CreateField(MySql);

Add("DATA", ftDate, 0, true);
FieldDefs[6].CreateField(MySql);

Add("ID", ftString, 15, true);
FieldDefs[7].CreateField(MySql);

Add("VYDAN", ftString, 250, true);
FieldDefs[8].CreateField(MySql);

Add("PLASE_WORK", ftString, 250, true);
FieldDefs[9].CreateField(MySql);


Numer := TIntegerField.Create(MySql);
with Numer do
begin
FieldName := "Numer";
Calculated := True;
DataSet := MySql;
Name := MySql.Name + FieldName;
MySql.FieldDefs.Add(Name, ftInteger, 0, true);
end;
end;
end;


Наверх

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