AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Wie definiere ich ein Lookup-Feld für eine TQuery?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie definiere ich ein Lookup-Feld für eine TQuery?

Ein Thema von MPirnstill · begonnen am 9. Jan 2006 · letzter Beitrag vom 11. Jan 2006
 
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Wie definiere ich ein Lookup-Feld für eine TQuery?

  Alt 9. Jan 2006, 12:33
Mit FieldDefs liegst du falsch. Du musst das Property Fields[] um ein Feld erweitern.
Delphi-Quellcode:
type
   TDataSetCracker = class(TDataSet); // Zugriff auf protected Member ermöglichen
function AddLookupField(ADataSet: TDataSet; AFieldClass: TFieldClass; const AFieldName: string; const AFieldSize: Integer = 0): TField;
   procedure CreateAllFields(DS: TDataSet);
   begin
      with TDataSetCracker(DS) do
      begin
         DestroyFields;
         FieldDefs.Update;
         CreateFields;
      end;
   end;
begin
   Result := nil;

   // Falls keine Felder im DataSet sind werden alle vorhandenen Felder angelegt.
   // Falls Felder vorhanden sind, so darf "CreateAllFields" nicht aufgerufen
   // werden, da die vorhandenen Felder nicht mehr gelöscht werden dürfen.
   if ADataSet.FieldCount = 0 then
      CreateAllFields(ADataSet);

   // Falls das LU Field schon existiert wird nix mehr gemacht.
   if ADataSet.FindField(AFieldName) <> nil then
      Exit;

   // LU Field anlegen, wenn weitere Eigenschaften des Feldes gesetzt
   // werden sollen, kann dies über den Rückgabewert gemacht werden.
   Result := AFieldClass.Create(ADataSet);
   Result.Name := ADataSet.Name + Copy(AFieldClass.ClassName,2,666) + AFieldName;
   Result.FieldName := AFieldName;
   Result.Size := AFieldSize;
   Result.FieldKind := fkLookup;
   Result.DataSet := ADataSet;
end;
Nach dem Öffnen der Query:
Delphi-Quellcode:
with AddLookupField(Fqry, TStringField, 'Landname', 35) do
begin
   LookupDataset := FqryLookup;
   LookupKeyfields := 'LandId';
   LookupResultField := 'Landname_deutsch';
end;
Andreas
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz