Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Access neues Feld anlegen (https://www.delphipraxis.net/156043-access-neues-feld-anlegen.html)

schniede 17. Nov 2010 22:23

Datenbank: Access • Version: 2003 • Zugriff über: Ado

Access neues Feld anlegen
 
Hallo
Ich möchte eine Bestehende Tabelle einer AccessDatenbank ändern, d.h.ein Feld zur Laufzeit hinzufügen.
Bisher hab ich alle Datenbankänderungen,Neu usw. schön mit Access gemacht und bin nun völlig ratlos ohne Editor sozusagen.
Da das Programm von mehreren genutzt wird, kann ich schlecht alle Datenbanken per Hand ändern.

Ich hab da auch ein gedankliches Problem.
Wie geht man bei soetwas vor?
Bei Programmstart prüfen ob Tabelle123 schon das Feld [Name] hat, nein dann hinzufügen, ja dann break ????

Wie gesagt ich hab bisher nur statisch mit Datenbanken gearbeitet, versteh auch ehrlich nicht den Sinn, eine Tabelle Dynamisch zu erzeugen.
Wenn Ich sie immer zu Programmstart erzeuge ist sie ja sozusagen leer und wenn ich das Programm beende die Daten weg.
Vieleicht kann mir mal jemand ein bischen auf den Kopf hauen, das es klick macht.

danke schon mal

Bummi 17. Nov 2010 22:52

AW: Access neues Feld anlegen
 
Wenn Du eine wachsende Anwendung hast, die auch noch mehrfach verteilt wird, wirst Du längerfristig nicht um Datenbankänderungen per Script herumkommen.
Vor Du Deine ganzen Datasets öffnest, kannst z.B. ins AfterConnect Deiner Connection ein Prozedur aufrufen welche dann:
1. Schaut ob es eine Versionsinformationstabelle gibt
2. Wenn es sie nicht gibt, diese erstellt und den Eintrag 1 einfügt
3. Du vergleichst die Versionsnummer mit beispielsweise mit Dateien in einem definierten Ordner in der Art UPD_1.SQL, UPD_2.SQL ...
4. Die fehlenden Scripte werden der Reihe nach eingespielt und die Version hierbei vom letzen Script mit eingetragen.
5. und zurück ins AfterConnect

Sicher sind diverse andere Arten den Vorgehens denkbar.

Ich würde vorher ein Backup der Datenbank machen und im Fehlerfalle dorthin zurückgehen.

Die Scripte bei uns werden Versionsweise in einer Datei fortgeschrieben, die einzelnen Scripte hierbei mit einer Zeile nur mit einem GO getrennt, dies erleichtert beim Einsatz mit dem SQL-Server die Testerei. Im Programm muss das dann halt wieder in Einzelschritte zerlegt werden.

Morphie 18. Nov 2010 08:12

AW: Access neues Feld anlegen
 
Wir vergleichen bei uns den Ist-Zustand mit dem Soll-Zustand und passen die Datenbank dann entsprechend an.

Bummi 18. Nov 2010 10:24

AW: Access neues Feld anlegen
 
@Morphie

dann verwendet Ihr einen anspruchsvolleren Ansatz, bei SQL-Server wüsste ich wie, bei Access wüsste ich gar nicht wo ich alle Informationen über Fremdschlüssel, defaultwerte, Indizes etc. herbekomme.

schniede 18. Nov 2010 14:36

AW: Access neues Feld anlegen
 
Ich danke Euch, da hab ich ja den richtigen Ansatz und kann mal los machen.
Auf die Idee wär ich selbst nicht gekommen, thx.

gruß schniede


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