Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

Re: TDataSet, TQuery -- wie auf Zellen zugreifen?

  Alt 30. Jan 2009, 00:36
Zitat von Frederika:
... Wobei man scheinbar die Feldnamen irgendwoher wissen muß? ...
Ja und Nein
Du bekommst über TADOQuery auch die Feldnamen mitgeteilt, wissen musst du allerdings, was der Feldname bzw. das Feld/der Feldinhalt bedeuten soll
Mit dieser Funktion bekommst Du alle Feldnamen einer übergebenen Datenmenge geliefert. Als Parameter übergibst Du einfach Deine TADOQuery. Stör Dich nicht daran, dass Deine Abfrage ja gar nicht vom Typ TDataSet ist, diese wird aber davon abgeleitet und daher funktioniert das (OOP sei Dank).
Delphi-Quellcode:
// Akzeptiert als Parameter auch alles, was ein Nachfahr von TDataSet ist
// Beispiel-Aufruf:
// ShowMessage( ListFieldNames( ADOQuery1 ) );
function ListFieldNames( DataSet : TDataSet ) : string;
var
  FieldIndex : Integer;
begin
  Result := '';
  if
    DataSet.Active
  then // nur wenn die Datenmenge geöffnet ist!

    // Wir lesen jetzt mal alle vorhandenen Felder der Reihe nach aus
    for
      FieldIndex := 0 to DataSet.FieldCount - 1
    do
      begin

        // Ist nur für die Kosmetik
        if
          ( FieldIndex > 0 )
        then
          Result := Result + ';';

        // Hier passiert es jetzt
        Result :=
          Result +
          DataSet.Fields.FieldByNumber( FieldIndex ).FieldName; // <-- Da wird der Feldname geholt

      end;
end;
Zitat von Frederika:
... Für mein Projekt muß ich einfach nur die Ergebnisdatenmenge komplett in eigene Objektstrukturen umwandeln. Ich greife wohl also zeilenweise einfach auf alle Datensätze zu (Deine while-Schleife) und erzeuge dabei eigene Objekte, die ich dann wieder wie gewohnt handhaben kann. Schnell ans rettende Ufer sozusagen...
So hatte ich Dich in dem anderen Thread (ODBC und SP) auch verstanden
Zitat von Frederika:
Danke!
you're welcome
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat