Vor dem Table.Open ein Table.Fields.Clear.
Die Feldliste wird automatisch beim Öffnen der Tabelle befüllt. Die Definition der Felder mit dem FieldDefs-Kollektionseditor ist nur erforderlich, wenn man die Tabelle mit Table.CreateTable erstellen will.
Hat man Felder im Quelltext definiert, z. B.:
Delphi-Quellcode:
type
TForm1 = class(TForm)
...
public
fID : TField;
fRootUrl : TField;
fPostUrl : TField;
...
dann kann man Table ein BeforeClose-Ereignis zuordnen:
Delphi-Quellcode:
procedure TForm1.TableBeforeClose(DataSet: TDataSet);
begin
fID := Nil;
fRootUrl := Nil;
fPostUrl := Nil;
...
und ein AfterOpen-Ereignis:
Delphi-Quellcode:
procedure TForm1.TableAfterOpen(DataSet: TDataSet);
begin
fID := Table.FindField('ID');
fRootUrl := Table.FindField('RootUrl');
fPostUrl := Table.FindField('PostUrl');
...
Greift man nun im Programm irgendwo auf so ein Feld zu, weiß aber nicht, ob man es überhaupt zur Verfügung hat (hier also bei der alten Tabelle), könnte man das in etwa so machen:
Delphi-Quellcode:
if Assigned(fID) then begin
ShowMessage(fID.AsString);
end;