Hallo,
eine konzeptionelle/Stil-Frage: wo legt ihr die für
SQL-Zugriffe notwendigen Namen der Tabellen sowie der Felder ab? Denkbar sind wohl:
- hart im Quellcode (wahlweise in einer eigenen
Unit, die die Strings führt)
- in einer separaten (Text)Datei, die eingelesen wird
oder auch:
- aus der/einer anderen
DB selber?
Spricht da was dagegen: eine Art config-Tabelle mit allen Namen der Felder und einem Index, in welcher Tabelle das Feld zu finden ist. Macht das Sinn? Dann lese ich bei Programmstart einmal die Liste von Tabellen-Namen ein und einmal die Liste von Feldnamen. In der Applikation könnte man das einfach in arrays of string werfen. Klasse lesbar wird es dort dann nicht, weil ein
SQl-Statement dann nur noch MyNames[TableIndex, ColumnIndex] enthält und dann nicht mehr im Quellcode leicht sichtbar ist, auf welchen Feldnamen ich zugreife.
Vorteil: es liegt konsequent alles in der
DB.
Nachteile: es hat ein wenig "zirkulären" Charakter. Dass man ein Feld dann in der gleichen Datenbank zwei mal ändern muss und das natürlich anfällig ist auf Fehler (Feldnamen geändert aber nicht in der config-Tabelle) - diesen Effekt hat man wohl bei jeder anderen Variante auch.
Danke für Eure Erfahrungen und Sichtweisen!
grüße
thomas