AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

dynamisch Records ansprechen

Offene Frage von "Blup"
Ein Thema von Hackerl · begonnen am 2. Aug 2012 · letzter Beitrag vom 3. Aug 2012
Antwort Antwort
Hackerl

Registriert seit: 8. Nov 2011
Ort: Darmstadt
10 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: dynamisch Records ansprechen

  Alt 3. Aug 2012, 07:31
UUPS!
Innerhalb des Code-Abschnitts gibt es keinen roten und fetten Text!
Hier noch einmal die Zeile ohne HTML-Code:
   ADUser.(rs.fields[1].name) := rs.fields[1].Value;
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.750 Beiträge
 
Delphi 12 Athens
 
#2

AW: dynamisch Records ansprechen

  Alt 3. Aug 2012, 08:06
Jetz mal ehrlich: als Anfäger würde ich in diesem Fall von der empfohlenen RTTI-Lösung die Finger lassen und das Ganze stracks durchprogrammieren. Du gibst die Reihenfolge der Felder in der Select-Anweisung vor und so kannst du auch die Feldnamen des Records entsprechend zuordnen. Das Ganze mit einem entsprechenden Kommentar versehen ist es auch nach zwei Jahren noch zu verstehen.

Bei der Lösung mit RTTI bekommst du zwar immer die passende Zuordnung der Felder aus der Select-Anweisung zu den Recordfeldern, allerdings sieht man das später auch nicht gleich und es bläht den Code ziemlich auf. Zuätzlich musst du dafür sorgen, daß die Record-Felder immer exakt so heißen, wie die Felder in der AD-Tabelle, was schon mal zu Problemen führen kann oder einfach nur unschön ist (wer nennt ein Record-Feld denn einfach nur "l" oder "cn"). Bei der einfachen Lösung kannst du im Record auch "CommonName" statt "cn" schreiben und "Location" statt einfach nur "l".
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#3

AW: dynamisch Records ansprechen

  Alt 3. Aug 2012, 10:35
Bei der Lösung mit RTTI bekommst du zwar immer die passende Zuordnung der Felder aus der Select-Anweisung zu den Recordfeldern, allerdings sieht man das später auch nicht gleich und es bläht den Code ziemlich auf. Zuätzlich musst du dafür sorgen, daß die Record-Felder immer exakt so heißen, wie die Felder in der AD-Tabelle, was schon mal zu Problemen führen kann oder einfach nur unschön ist (wer nennt ein Record-Feld denn einfach nur "l" oder "cn"). Bei der einfachen Lösung kannst du im Record auch "CommonName" statt "cn" schreiben und "Location" statt einfach nur "l".
Das geht mit der RTTI auch, man muss sich nur zu helfen wissen. Du kannst für jedes Feld ein Attribut führen, um das Mapping zu gewährleisten. Oder du definierst dir eine Config-Datei für sowas. Aber gut, das ist dann auch wieder mit Kanonen auf Spatzen geschossen

Ebenso muss dazu gesagt werden, dass potentielle Fehler bei der ausprogrammieren Version auch schon durch den Compiler gefunden werden, also z.B. Schreibfehler, und nicht erst zur Laufzeit.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 19:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz