Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbankfeld zu Access Datenbank hinzufügen - geht das? (https://www.delphipraxis.net/120606-datenbankfeld-zu-access-datenbank-hinzufuegen-geht-das.html)

tgutgu 13. Sep 2008 15:01

Datenbank: Access • Version: 2007 • Zugriff über: dbGo, ADO

Datenbankfeld zu Access Datenbank hinzufügen - geht das?
 
Hallo

Ich schreibe gerade eine Anwendung für die Planung von Software-Projekten.

Grundlage ist unter anderem eine Tabelle mit Mitarbeitern, welche durch ein Kürzel, den Namen und eine Default-Verfügbarkeit gekennzeichnet sind.

Weiterhin gib es eine Verfügbarkeitstabelle, in der für jede Kalenderwoche (Datensatz) für jeden Mitarbeiter die Verfügbarkeit gespeichert ist. Die Spalten dieser Tabelle sind nach den Kürzeln der Entwickler benannt und haben (bis auf Jahr und Kalenderwoche) die gleichen Eigenschaften.

Der Projektleiter soll in der Mitarbeitertabelle einen neuen Mitarbeiter hinzufügen können. Dabei soll die Verfügbarkeitstabelle um ein entsprechendes Feld zur Laufzeit erweitert werden (der Name des Feldes wäre das Kürzel des neuen Mitarbeiters). Beim Löschen eines Mitarbeiters sollte analog verfahren werden.

Ich stehe derzeit auf dem Schlauch, wie man zur Laufzeit zu einer bestehenden Tabelle programmatisch Felder hinzufügen oder löschen kann.

Vielleicht kann mich ja jemand in die richtige Richtung schicken, die ADO-Kompomenten scheinen keine Methoden dafür zu haben. (Ich meine mich zu erinnern, dass es eine ADO-Typbibliothek für DDL gibt und hätte gedacht, dass dies mittlerweile in die ADO-Komponenten eingeführt worden ist - ich komme noch von Delphi 6 und bin gerade auf Delphi 2007 umgestiegen).

Vielen Dank für alle Hinweise.

Grüße

Thomas

marabu 13. Sep 2008 15:24

Re: Datenbankfeld zu Access Datenbank hinzufügen - geht das?
 
Herzlich willkommen in der Delphi-PRAXiS, Thomas.

Wenn du Einfluss auf die Datenmodellierung nehmen kannst, dann solltest du dafür kämpfen, dass die Verfügbarkeitstabelle geändert wird. Das Mitarbeiter-Kürzel sollte kein Feldname sein, sondern ein Feldwert in einer Tabelle VERFUEGBARKEITEN(JAHR,KW,MA,STUNDEN). Der von dir beschriebene Ansatz passt nicht zu einem relationalen Datenbanksystem und führt auch zu Problemen bei der Visualisierung und Auswertung der Daten.

Freundliche Grüße

tgutgu 13. Sep 2008 17:18

Re: Datenbankfeld zu Access Datenbank hinzufügen - geht das?
 
Zitat:

Zitat von marabu
Herzlich willkommen in der Delphi-PRAXiS, Thomas.

Wenn du Einfluss auf die Datenmodellierung nehmen kannst, dann solltest du dafür kämpfen, dass die Verfügbarkeitstabelle geändert wird. Das Mitarbeiter-Kürzel sollte kein Feldname sein, sondern ein Feldwert in einer Tabelle VERFUEGBARKEITEN(JAHR,KW,MA,STUNDEN). Der von dir beschriebene Ansatz passt nicht zu einem relationalen Datenbanksystem und führt auch zu Problemen bei der Visualisierung und Auswertung der Daten.

Freundliche Grüße

Hallo Marabu

Vielen Dank für die schnelle Antwort. Mittlerweile habe ich eine Lösung gefunden, indem ich einen SQL-String mit dem entsprechenden ALTER TABLE Statement dynamisch zusammenbau und über die Execute-Methode der ADO-Connection an die DB schicke. Das klappt. Jetzt muss ich nur noch dafür sorgen, dass die Spalten der Anzeigetabellen mit aktualisiert werden.

Zum Datenmodell: Wie du schreibst wäre es vermutlich flexibler und würde ohne Datenbankstrukturänderungen auskommen, wenn man Deinem Vorschlag folgen würde. Allerdings wollen die Benutzer je Kalenderwoche für alle Mitarbeiter in einer Tabellenzeile die Verfügbarkeiten editieren können. Die Struktur der angezeigten Tabelle ist also genauso gewünscht. Würde man Deinem Vorschlag folgen, müsste die Tabelle per Anwendungslogik auf die DB abgebildet werden.

Das Mitarbeiterteam ändert sich weniger häufig als die Verfügbarkeiten, so dass ich das Datenmodell vorerst so lassen werde.

Viele Grüße

Thomas


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:30 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