AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken prozedural oder per OOP auf Datenbank zugreifen ?
Thema durchsuchen
Ansicht
Themen-Optionen

prozedural oder per OOP auf Datenbank zugreifen ?

Ein Thema von Hansa · begonnen am 24. Sep 2005 · letzter Beitrag vom 26. Sep 2005
Antwort Antwort
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

prozedural oder per OOP auf Datenbank zugreifen ?

  Alt 24. Sep 2005, 22:30
Datenbank: FB 1.5 • Zugriff über: FIBplus
Hi,

ich mache momentan den Zugriff auf die DB sowohl über Prozeduren, als auch mit Klassen (testweise). In Delphi. Für den eigentlichen DB-Zugriff sind stored Procedures da. Diiese brauchen aber Parameter und davon teilweise recht viele.

Nachteil Prozedur :

elend lange Paramterliste, sehr lange Zeilen, nicht flexibel, Sonderfälle unübersichtlich zu behandeln (2. ähnliche Prozedur oder noch einen Parameter mehr) und schlechter wartbar bei Änderungen

Vorteil Prozedur :

vergesse ich einen Parameter, dann werde ich darauf von Delphi gewarnt
brauche mich um Create etc. nicht zu kümmern


Nachteil Klasse :

es ist schwieriger sicherzustellen, daß alle benötigten Werte auch richtig initialisiert werden, Create und free muß selber verwaltet werden (free könnte zu früh zu spät kommen wegen falsch gesetzem Block). Fehlermeldungen auch erst zur Laufzeit und deshalb schlechter zu lokalisieren.

Vorteil Klasse :

Vererbung möglich, ist dosierter einzusetzen, weil ich die Parameter meistens nicht alle zur selben Zeit brauche. Zwar mehr Zeilen, aber dafür kleine.


Tja, die Frage ist eben was besser ist ? Wer machts wie ? Bei mir gehts um ca. 50 Tables, 100 Trigger und im Endausbau so 120 SPs.
Gruß
Hansa
  Mit Zitat antworten Zitat
tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#2

Re: prozedural oder per OOP auf Datenbank zugreifen ?

  Alt 26. Sep 2005, 09:44
Könntest du nicht ähnliche Parameter in Records zusammenfassen, dann den Prozeduren anstelle der Parameter die Parameterrecords übergeben? Ich weiß jetzt gerade nicht ob Delphi bei Records auch Standardwerte erlaubt, wenn nicht musst du halt mit Zeigern arbeiten.
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: prozedural oder per OOP auf Datenbank zugreifen ?

  Alt 26. Sep 2005, 10:42
Ich versteh nicht ganz, was Du im Zusammenhang mit FB und Stored Procedures unter Klassen und Prozeduren verstehst, aber ich kann ja mal aus dem Nähkästchen plaudern:
MSSQL, 100 Tabellen, ca 70 Stored Procedures.

Ich habe die Funktionalität der Mittelschicht ('Geschäftsregeln') peu a peu in die Stored Procedures verlagert. Das hat sich so ergeben, weil ich sonst kaum in einer 24/7 Umgebung Anpassungen machen kann.

Das Problem der 1000 Parameter pro SP habe ich umgangen, zumal sich die Parameterliste zur Laufzeit ändern kann. Alle Stored Procedures, die mit der Mittelschicht (was davon übrig geblieben ist) kommunizieren sollen, haben genau einen Parameter: Ein XML-Record, bzw. eine proprietäre und kompaktere Variante. Damit muss ich die Mittelschicht nie mehr anfassen, nur weil ein Parameter hinzukommt. In den SP entpacke ich den XML-Record und arbeite dann weiter. Eventuell wird der REcord erweitert und als Output-Parameter zurückgeliefert. Den zusätzlichen Overhead kann ich verkraften. Auch weil die DB nicht am Anschlag operiert. Ausserdem ist Rechenpower günstig.

Nach 4 Jahren Dauereinsatz als Produktionsdatenerfasssung im 24/7 Betrieb einer grossen Fabrik lobpreise ich den Tag, an dem mir diese auf den ersten Blick ziemlich blöde Idee gekommen ist.

War das etwas Info für Dich?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  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 02:27 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