ClientDataSet.Fields

1 отговора 46 прегледа
#1

ClientDataSet.Fields

Здравйте, имам следните въпроси:

1. На ClientDataSet възможно ли е да не му се указват RemoteServer и DataSetProvider, т.е. ClientDataSet-a да се използва само като локален кеш за данни, като полетата му се добавят в run-time.

2. В случай че горното не е възможно, мога ли, ако изобщо е възможно да добавя поле към ClientDataSet-a в run-time, което не фигурира във физическата таблица.
Причината е, че пробвах да добавя такова поле, но после след като приложих Locate по това поле, компилатора ми изпищя че това поле не фигурира в ClientDataSet-a, а при последвал дебъг се вижда че е там, но просто не ще да Locate-ва по него, което не ми е ясно защо (синтаксиса на Locate-a е спазен).

Моля, ако някой знае как мога да разреша проблема, нека каже.

Отговор
в отговор на Daniel #2

Re: ClientDataSet.Fields

ClientDataSet е доста мощна компонента, която можеш да я използваш както си поискаш.
ето един пример за дефиниране на полета в CDS чрез TFields

procedure TForm1.FormCreate(Sender: TObject);
begin
with ClientDataSet1 do
begin
with TStringField.Create(Self) do
begin
Name := 'ClientDataSet1FirstName';
FieldKind := fkData;
FieldName := 'FieldName';
Size := 72;
DataSet := ClientDataSet1;
end; //FieldName
with TMemoField.Create(Self) do
begin
Name := 'ClientDataSet1LastName';
FieldKind := fkData;
FieldName := 'Last Name';
DataSet := ClientDataSet1;
end; //Last Name
ClientDataSet1.CreateDataSet
end;
end;


Отговор