![]() |
Datenbank: SQLite • Version: 3.39.3 • Zugriff über: Zeos
Config für DB aus DB selber
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 |
AW: Config für DB aus DB selber
Liste der Anhänge anzeigen (Anzahl: 1)
Moin...:P
Zitat:
Das gilt sowohl für die SQL für das Programm als auch für die DDL SQL für die DB. :thumb: Siehe: ![]() [Werbung OFF] :lol: |
AW: Config für DB aus DB selber
Zitat:
Das Tool schau ich mir gleich mal an! 8-) Edit: ok, ich seh's schon anhand Deines Tutorials: genau so: da ist gar kein SQL mehr drin. Man bindet das ganze Ding separat ein. |
AW: Config für DB aus DB selber
wobei, doch noch ein Verständnisproblem: wie löst man dann die Zuweisung zu einzelnen Variablen?
Also zB ein
Delphi-Quellcode:
oder auch umgekehrt:
SomeClass.SomeValue := ZQuery.FieldByName('SomeValue').AsInteger;
Delphi-Quellcode:
ZQuery.ParamByName('SomeValue').AsInteger := SomeClass.SomeValue;
Wie kommt man da ohne die Namen der Felder aus? |
AW: Config für DB aus DB selber
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
PS: Im Handbuch sind Delphi Beispiele wie man mit Ressourcen umgeht...:wink: Zitat:
Oder ein anderes System benutzen (z.B. Aurelius). Kommt auf den Aufwand an. ![]() |
AW: Config für DB aus DB selber
Danke Dir! Ich schau mir Deine Applikation mal näher an! Prinzip scheint aber mal verstanden.
Zitat:
|
AW: Config für DB aus DB selber
Zitat:
![]() |
AW: Config für DB aus DB selber
Zitat:
|
AW: Config für DB aus DB selber
Ich habe mir ein kleines Tool geschrieben (verwendet z.B. SynEdit), mit dem man die Scripte erstellt und testen kann.
Weiterhin extrahiert das Tool aus der DB alle Tabellen und deren Feldnamen sowie SPs und Views in eine Include Datei. Bespiel:
Delphi-Quellcode:
Diese wird von eine Konstanten Unit eingebunden.
tnTEST = 'TEST';
fnTEID = 'TEID; // INTEGER fnTENAME = 'TENAME'; // VARCHAR(40) Alle Tabellen fangen mit tn... und alle Felder mit fn... an. In unserer DB sind die Feldnamen nie doppelt. Vorteil, man kann sich nicht so leicht mit den Feldnamen vertun, wenn die als Konstanten vorliegen. Mit dem Tool wird ein Script Datei erstellt, die für jede DB-Version ein Script enthält. Nach dem Anmelden wird vom 1. User geprüft, ob ein Update nötig und möglich ist. Die Datenbank hat eine extra Tabelle, welche die Versionsinformationen dafür enthält. |
AW: Config für DB aus DB selber
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:13 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