Ich möchte zur Laufzeit des Programms über SQL die Datenbank erweitern.
Um die Felder bearbeiten zu können erzeuge ich Dynamisch Komponenten.
Wenn RequestLive der Abfrage auf false gesetzt ist, funktioniert das auch
alles
wunderbar, nur bei einer aktualisierbaren Abfrage habe ich das Problem daß
ich
beim Öffnen der Datenbank eine Fehlermeldung erhalte daß das Feld "Userfeld"
nicht gefunden werden kann. Was mache ich falsch bzw. wie kann ich das
Problem
umgehen. Bin für jeden Tip dankbar!
BDE und Interbasedatenbank wird verwendet.
Var
sql:string;
s:Tstringfield;
begin
sql:='alter table adressen add USERFELD VARCHAR(5)';
felddazu.SQL.Clear;
felddazu.SQL.Add(sql);
felddazu.ExecSQL;
Name:='USERFELD';
Adressen.close;
s:=Tstringfield.Create(self);
s.FieldName:=name;
s.FieldKind:=fkData;
s.Name:=Adressen.Name+name;
s.readonly:=false;
s.Index:=Adressen.FieldCount;
s.DataSet:=Adressen;
Adressen.FieldDefs.Add(Adressen.Name+name,ftstring ,30,false);
Adressen.FieldDefs.Update;
Adressen.open;
end;
Gerhard
[email protected]
Um die Felder bearbeiten zu können erzeuge ich Dynamisch Komponenten.
Wenn RequestLive der Abfrage auf false gesetzt ist, funktioniert das auch
alles
wunderbar, nur bei einer aktualisierbaren Abfrage habe ich das Problem daß
ich
beim Öffnen der Datenbank eine Fehlermeldung erhalte daß das Feld "Userfeld"
nicht gefunden werden kann. Was mache ich falsch bzw. wie kann ich das
Problem
umgehen. Bin für jeden Tip dankbar!
BDE und Interbasedatenbank wird verwendet.
Var
sql:string;
s:Tstringfield;
begin
sql:='alter table adressen add USERFELD VARCHAR(5)';
felddazu.SQL.Clear;
felddazu.SQL.Add(sql);
felddazu.ExecSQL;
Name:='USERFELD';
Adressen.close;
s:=Tstringfield.Create(self);
s.FieldName:=name;
s.FieldKind:=fkData;
s.Name:=Adressen.Name+name;
s.readonly:=false;
s.Index:=Adressen.FieldCount;
s.DataSet:=Adressen;
Adressen.FieldDefs.Add(Adressen.Name+name,ftstring ,30,false);
Adressen.FieldDefs.Update;
Adressen.open;
end;
Gerhard
[email protected]