Добавление вычисляемого поля программно в TTable???
1.Как добавить поле к уже существующей таблице через TTable (не через Query), а конкретно вычисляемое поле.
2. Как добавить вычисляемое поле при создании таблицы, т. е. когда определяются FieldDefs.
Спасибо
Ребята, не могу нигде найти:
1.Как добавить поле к уже существующей таблице через TTable (не через Query), а конкретно вычисляемое поле.
2. Как добавить вычисляемое поле при создании таблицы, т. е. когда определяются FieldDefs.
Спасибо
О добавлении поля (На Paradox) - не важно какого
//---------------------------------------------------------------------------
TField* __fastcall TDM::AddFldDef(TDataSet* ds, TFieldType fType,
AnsiString fName, bool isCalc)
{
TField *fld;
switch(fType)
{
// case ft: fld=(TField*) new TField(ds); break;
case ftCurrency: fld=(TCurrencyField*) new TCurrencyField(ds); break;
case ftDateTime: fld=(TDateTimeField*) new TDateTimeField(ds); break;
case ftSmallint: fld=(TSmallintField*) new TSmallintField(ds); break;
case ftInteger: fld=(TIntegerField*) new TIntegerField( ds); break;
case ftAutoInc: fld=(TAutoIncField*) new TAutoIncField( ds); break;
case ftBoolean: fld=(TBooleanField*) new TBooleanField( ds); break;
case ftString: fld=(TStringField* ) new TStringField( ds); break;
case ftFloat: fld=(TFloatField*) new TFloatField( ds); break;
case ftMemo: fld=(TMemoField*) new TMemoField( ds); break;
case ftDate: fld=(TDateField*) new TDateField( ds); break;
case ftTime: fld=(TTimeField*) new TTimeField( ds); break;
}
fld->FieldName=fName;
fld->Calculated=isCalc;
fld->Index = ds->Fields->Count;
fld->DataSet= ds;
ds->FieldDefs->Update();
return fld;
}
для вычисляемного нужно еще дописать
fld->onCalcFields=уазатель на заранее прописанную функцию вычисления
А я мыкался с чистым TField, производные классы даже не заметил... :x