Entwickler-Ecke
Datenbanken - Roadmap eines Programmes
trm - Do 20.11.14 18:06
Titel: Roadmap eines Programmes
Hallo.
Vor Jahren hatte ich ein Buch, welches sich mit der Datenbankentwicklung unter Delphi3 beschäftigte. Dies habe ich als Hobbyprogrammierer eher zäh gelesen, weil das ganze für mich viel zu abstrakt war.
Dann im Laufe der Zeit habe ich mich in eine Datenbankstruktur (TDBf - Sourceforge) eingearbeitet, welche aber schon längst nicht mehr weiter entwickelt wurde. Nun zu meinem Problem. Die Datenbank liegt beim ersten Programmstart nicht vor, sie wird dann erst erstellt. Die Datenbankanbindungen werden auch erst beim Programmstart erzeugt.
Ich ersuche um Hilfe bei der therotischen Erstellung eines Programmes vom Start bis zur normalen Laufzeit in Form wie etwa:
1. Datenbank öffnen
1.1. A Wenn DB noch nicht existiert, erstellen
1.1. B Wenn DB schon existiert, Versionsprüfung
1.2 Datenbank auf Fehler prüfen (Itegritätsprüfung)
würde mir hierbei bitte jemand helfen oder einen aktuellen Link geben, wo ich solchen nachlesen kann?
OlafSt - Do 20.11.14 21:17
Bring erstmal die Reihenfolge auf die Reihe ;)
1. Wenn DB noch nicht existiert, erstellen
2. Datenbank öffnen
3. Versionsprüfung
4. Datenbank auf Fehler prüfen (Integritätsprüfung)
Zu 1.) Das geht mit FileExists, sofern es eine lokale DB ist (Access, TurboDB, ADB usw). Ansonsten Connection zum Server öffnen
Zu 2.) Ist Abhängig von der lokalen DB / Server
Der Rest ist "DB öffnen, Tabelle öffnen, Felder auslesen", also Business as usual bei Datenbank-Anwendungen.
trm - Do 20.11.14 22:13
Danke Olaf.
Dann habe ich noch eine Frage bezüglich der Codepflege.
Bisher hatte ich immer die Feldnamen der Tabellen und auch die Größe, Feldtyp und ein Bool als Requiered in einer eigenen Unit ausgelagert. So konnte ich bei Bedarf die Felder aktualisieren, Größen anpassen usw.
Macht man das so oder gibt es einen besseren Weg?
Hier mal ein Beispiel:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| ver_HighDB = 4; ver_Labels_DB: array [0 .. ver_HighDB] of string = ('ver_index', 'ver_datum', 'ver_uhrzeit', 'ver_programm', 'ver_test'); ver_Labels_DB_Type: array [0 .. ver_HighDB] of TFieldType = (ftAutoInc, ftString, ftString, ftString, ftString); ver_Labels_DB_Length: array [0 .. ver_HighDB] of Integer = (-1, 32, 32, 32, 32); ver_Labels_DB_Required: array [0 .. ver_HighDB] of Boolean = (True, False, False, False, False); |
Erstellt, geprüft und aktualisiert habe ich diese Tabellen dann immer mit einer eigenen Function, in welcher die Arrays entsprechend genutzt werden.
Praktikabel oder nutzt ihr bessere, einfache Varianten?
OlafSt - Fr 21.11.14 17:05
Der Möglichkeiten gibts viele. Man könnte eine Textdatei ablegen, in der die aktuelle DB-Version hinterlegt ist. Oder - so wie ich es einmal gemacht habe - gibt es eine Tabelle mit nur einem Eintrag. Dort lagen Dateipfade, benutzerdef. Farben und so weiter drin. Unter anderem auch ein Feld für die DB-Version.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!