Einzelnen Beitrag anzeigen

barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Master-Detail-Beziehung zur Laufzeit erstellen

  Alt 1. Jun 2004, 10:30
Hallo,

jetzt habe ich das Problem gelöst. Es funktioniert mit der normalen Master-Detail-Verbindung.
Folgende Komponenten konfiguriert:

Delphi-Quellcode:
...
MasterLookupBox.ListSource:= MasterSource;
DetailLookupBox.ListSource:= DetailSource;

MasterLookupBox.ListField:= 'ListFieldName'
DetailLookupBox.ListField:= 'ListFieldName';

MasterLookupBox.KeyField:= 'KeyName';
DetailLookupBox.KeyField:= 'KeyName';

...


procedure LookupBoxOnEnter(Sender: TObject);
begin
  SetMasterDetail(TDBLookupComboBox(Sender));
end;

procedure SetMasterDetail(...)
begin
  ...
  // Query der LookupBox
  DetailQuery.DataSource:= MasterLookupBox.ListSource;

  Tablename:= GetTableName;
  KeyName:= MasterLookupBox.ListSource.KeyName;
  DetailQuery:= GetQuery(TableName);

  // Parameter einfügen
  DetailQuery.Close;
  DetailQuery.SQL.Clear;
  DetailQuery.SQL.Add('SELECT * ');
  DetailQuery.SQL.Add('FROM '+Tablename);
  DetailQuery.SQL.Add('WHERE '+KeyName+'=:'+KeyName);
  DetailQuery.Open;
end;
Das in Kurzform. Für weitere Fragen stehe ich gern zur Verfügung.

Woran es jetzt gelegen hat vermag ich nicht zu sagen. Wahrscheinlich lag es am Zeitpunkt des Setzens der Master-Detail-Beziehung. So geht es auf jeden Fall.

Nochmals Danke an alle.
Gruß,

Barnti
  Mit Zitat antworten Zitat