AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken DDL-Funktionalitäten in Delphi-Programmen fest verdrahten?
Thema durchsuchen
Ansicht
Themen-Optionen

DDL-Funktionalitäten in Delphi-Programmen fest verdrahten?

Ein Thema von p80286 · begonnen am 28. Mär 2020 · letzter Beitrag vom 28. Mär 2020
Antwort Antwort
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

DDL-Funktionalitäten in Delphi-Programmen fest verdrahten?

  Alt 28. Mär 2020, 00:14
Datenbank: egal • Version: 88 • Zugriff über: gleich
Immer wieder tauchen hier Beiträge auf, in denen Datenbanken angelegt werden, Tabellen modifiziert werden, kurz Aufgaben eines DB-Administrators in einem Programm vergossen werden. Das setzt mindestens einen entsprechenden Host und die notwendige Berechtigung vorraus. Die notwendigen Prüfungen beschränken sich aber meist auf wenns geht ist gut, wenn nicht "woher kommt denn dieser Fehler"??
Dieses Vorgehen mag für einige lokalen Datenbanken für Spielstände hinreichend sein, für "richtige" Datenbanken auf einem Server der/die u.U. extern administriert wird/werden verbietet sich dies meiner Meinung nach.
1) Ein DBadmin der irgendeine Exe laufen läßt, die seine Datenbank modifizieren soll, sollte sich gleich nach einem neuen Arbeitgeber umsehen.
2)Einer EXE sieht man auf den ersten Blick nicht an was in ihr steckt. In den meisten Fällen sollte es vollkommen ausreichend sein, ein Script zur Verfügung zu stellen, dann kann auch der DB-Admin sich ein Bild machen und man kann ggf. darüber Diskutieren ob zB. die Indices sinnvoll sind.
2a) Da ein Script relativ offensichtlich preisgibt was es leistet, ist es auch oft leichter zu überprüfen ob das Script zur aktuellen DB passt. In einer Exe verpackt ist das dann ein Blindflug wo man darauf vertrauen muß das wirklich die korrekte Befehle verwendet wurden.

Unterm Strich ich halte es nicht nur für Überflüssig wenn DataDefinition-Funktionalitäten in Programmen auftauchen, es ist auch fehleranfällig und nur aufwendig zu pflegen.

Liege ich mit diesen Ansichten vollkommen falsch oder was meint Ihr?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#2

AW: DDL-Funktionalitäten in Delphi-Programmen fest verdrahten?

  Alt 28. Mär 2020, 00:23
Es gibt genügend Fälle, bei denen vor Ort gar kein DB-Admin vorhanden ist.

Die einzige Aktion, die der Kunde ausführen muss, ist dann das Update anzustoßen. Gegebenenfalls wird überprüft und darauf hingewiesen, daß andere Benutzer das Programm beenden müssen um die Datenbank freizugeben, wobei auch das programmtechnisch unterstützt wird. Der Rest läuft dann automatisch.

Es wäre auch nicht hinnehmbar, bei Tausenden von Kunden den jeweiligen DB-Admin (der wie gesagt in der Regel eh nicht existiert) damit zu beauftragen, ja sogar auf ihn angewiesen zu sein.

Die wenigsten meiner Kunden wären in der Lage, eine solche Aufgabe durchzuführen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
972 Beiträge
 
Delphi 6 Professional
 
#3

AW: DDL-Funktionalitäten in Delphi-Programmen fest verdrahten?

  Alt 28. Mär 2020, 06:14
Hmm..

Und eigentlich ist der Anwendungs-Entwickler der DBAdmin, da er die entsprechenden Tabellen und Indexe für die Funktion seiner Applikation benötigt.
Wie soll ein Kunden-DBAdmin, welcher die eigentliche Anwendung gar nicht kennt, entscheiden können, welche Tabellen wie angelegt werden?

Die Kunden-DBAdmins, welche ich kenne, legen den DB-Server an, richten die User (eventuell) ein, spielen die Updates der Engine ein und konfigurieren die Backups.
Was jedoch in den Datenbanken wie vorhanden ist, dass wollen die gar nicht wissen, denn bei diversen Applikationen mit zich Datenbanken haben sie gar keine Zeit sich um deren internen Aufbau zu kümmern.

Teilweise ist dieser Aufbau sogar per Vertrag als Betriebsgeheimnis des Anwendungsentwicklers eingestuft...

Der DB Admin, oder besser 'Systemadministrator' des Kunden kümmert sich eigentlich nur um folgende Punkte:
- Aufsetzen des Datenbank-Servers
- Einspielen der Updates der Datenbank-Engine
- Erstellen und Sichern von Backups

Mit diesen Admins haben wir beim Kunden nur bei der Erstinstallation und dann nur wenn die Datenbank auf eine neue Version der Engine umgestellt werden muss zu tun.
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
536 Beiträge
 
Delphi 12 Athens
 
#4

AW: DDL-Funktionalitäten in Delphi-Programmen fest verdrahten?

  Alt 28. Mär 2020, 06:21
Also wir haben etliche Kunden, die unser Programm mit Datenbank einsetzen, die nicht mal wissen was ein Explorer ist oder was die Tastenkombination Alt-F4 bedeutet usw.

Auch Datensicherung ist oft völlig unbekannt.

Wie sollen diese Leute entscheiden welcher Index in der Datenbank sinnvoll ist?

Dies bitte nicht falsch verstehen, ich möchte niemanden abwerten, weil keine PC-Kenntnisse vorhanden sind. Jeder hat seine Stärken und Schwächen.

Bei uns macht allein das Programm selber Änderungen an der Datenbank beim Kunden, und das werde ich auch beibehalten.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.211 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: DDL-Funktionalitäten in Delphi-Programmen fest verdrahten?

  Alt 28. Mär 2020, 14:49
Ha, gutes Thema. Unser Programm führt Änderungen an der DB selbsttätig aus, da muss der User gar nichts machen. Über eine Versionierung ist das sehr elegant gelöst und hat immer wunderbar funktioniert.

Dann kam ein großer Kuden + hat geasgt, das kommt nuicht in Frage, da weiß ich ja nicht, was die App in der DB so macht. Ich wär ja der meinung gewesen, dass die App in ihrer eigenen DB machen soll, was sie will, sie kann ja - bei einem gscheit administrierten System eh nicht raus - eh nicht raus.

Aber großer Kunde ist Kunde, der anschafft.

Also haben wir den Teil, der die versionierung macht, so umgebaut, dass die Änderungen in ein Script gespeichert werden, das schaut sich der Admin an, fühgrt es aus + die App kann mit dem neuen Versionsstand weiterlaufen. So braucht die APP auf der DB keine DBO Rechte, das ist eh recht cool. TRIGGER disablen geht zum Glück mit ein bissl tricksen auch anders.

Wirklich verstehen tu ich diesen Wunsch nicht, weil die bösen Sachen ja eher mit Daten manipulieren zu tun haben, aber DB Admins sind da wohl eigen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:04 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