AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Datenbankzugriff - Best Way - Datasets oder Klassen ?

Datenbankzugriff - Best Way - Datasets oder Klassen ?

Ein Thema von HeinzJ · begonnen am 11. Dez 2007 · letzter Beitrag vom 6. Dez 2008
Antwort Antwort
Seite 1 von 2  1 2   
HeinzJ

Registriert seit: 17. Aug 2007
Ort: Bremen
84 Beiträge
 
Delphi 2007 Architect
 
#1

Datenbankzugriff - Best Way - Datasets oder Klassen ?

  Alt 11. Dez 2007, 13:26
Datenbank: MSSQL • Version: 2007 • Zugriff über: ADO, dbexpress, noch unklar
Ich bin gerade dabei eine neue Applikation (Client / MSSQLSERVER) zu entwerfen und überlege, was der beste Weg sein könnte für den Datenbankzugriff

1. Klassen + Queries ?
2. Custom Dataset (wg. Caching) + Klassen + Queries ?
3. nur Datasets

Ich habe immer wieder die Java Beans im Hinterkopf und frage mich, wieso diese so stark benutzt werden. Delphi kenne ich bisher nur stark Dataset-lastig. Datasets sind schön einfach zu verwenden .... Mhhh

Wer kann mir bei all dem Für und Wieder weiterhelfen. Ein paar weiterführende Links wären auch hilfreich.

Grüße, HeinzJ
  Mit Zitat antworten Zitat
Hansa

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

Re: Datenbankzugriff - Best Way - Datasets oder Klassen ?

  Alt 11. Dez 2007, 19:48
Zitat von HeinzJ:
..Delphi kenne ich bisher nur stark Dataset-lastig..
Wieso soll das eine Last sein ? Das ist ein Vorteil, weil so ziemlich alles darauf aufgebaut ist. Ausnahme : Exoten und BDE. Die Frage widerpricht sich ausserdem noch. Denn worauf soll denn eine Klasse überhaupt aufgebaut sein ?
Gruß
Hansa
  Mit Zitat antworten Zitat
HeinzJ

Registriert seit: 17. Aug 2007
Ort: Bremen
84 Beiträge
 
Delphi 2007 Architect
 
#3

Re: Datenbankzugriff - Best Way - Datasets oder Klassen ?

  Alt 11. Dez 2007, 20:02
...lastig... war nicht wertend gemeint. Sollte nur heißen das die einen großen Raum einnehmen. Konzepte wie z.B. Beans finden sich dagegen kaum.
  Mit Zitat antworten Zitat
Hansa

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

Re: Datenbankzugriff - Best Way - Datasets oder Klassen ?

  Alt 11. Dez 2007, 20:52
Du hast die Delphi-Version nicht angegeben. Sofern das keine Demo ist, bzw. Personal usw. dann hilft ein Blick in den VCL-Quelltext. Und was sieht man da ? Das TDataSet hat viele als virtual; deklarierte Methoden. Im Prinzip initialisieren sie also lediglich irgendwas, bzw. verhindern abstrakte Fehler durch fehlende Prozedur-Rümpfe. TDataSet ist jedenfalls eigentlich leer. Die eigentlichen Funktionen werden von den daraus abgeleiteten konkreten Zugriffskomponten erledigt. Insofern gibt es auch kein TCustomDataSet, weil im TDataSet sowieso alles definiert werden muss.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Datenbankzugriff - Best Way - Datasets oder Klassen ?

  Alt 11. Dez 2007, 20:58
Zitat von HeinzJ:
...lastig... war nicht wertend gemeint. Sollte nur heißen das die einen großen Raum einnehmen. Konzepte wie z.B. Beans finden sich dagegen kaum.
Was unterscheidet denn eine Java-Bean von einer Delphiklasse (bzw. spezieller: einer Delphi-Komponente)??

Eine Java-Bean ist doch eine normale Klasse die sich an gewisse Konventionen bei den Zugriffen auf die Eigenschaften hält (hauptsächlich damit IDEs damit umgehen können). Somit sind eigentlich alle Delphi-Komponenten im Grunde so etwas wie Beans.

Ich kann mich auch irren. Bitte korrigier mich wenns falsch ist...

EDIT: oh, das war gerade Beitrag Nummer $FF
Ralf Kaiser
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#6

Re: Datenbankzugriff - Best Way - Datasets oder Klassen ?

  Alt 11. Dez 2007, 22:08
Zitat von HeinzJ:
Konzepte wie z.B. Beans finden sich dagegen kaum.
Hm, ist ein wenig wie Äpfel mit Bohnen vergleichen
Java verfolgt natürlich ein ganz anderes Konzept als Delphi. In Java findest Du einfach eine starke Verwendung bestimmter Muster, z.B. das DAO Pattern. Die Beans können dabei einfach gut als Transfer Object eingesetzt werden. An sich hat eine Java Bean aber wirklich wenige Eigenschaften (die Namenskonvention wurde schon genannt, zudem sind alle afaik serialisierbar). Anders gesagt, Bohnen werden dort nur als Container für die Daten eingesetzt.
Ganz wichtig ist dabei, dass man nochmal die Java Enterprise Beans davon getrennt betrachtet. Auch dort gibt es halt Konzepte, wie man auf ein DBS zugreift, jedoch haben Enterprise Beans jeweils ganz bestimmte Rollen. Das Konzept kann man super bei Sun nachlesen (ist etwas umfangreicher), an sich erlaubt dort jedenfalls der Einsatz dieser speziellen Beans eine sehr weitreichende Verwaltung durch den Enterprise Server (z.B. kümmert dieser sich komplett selbst um die Nebenläufigkeit).

Jedenfalls wurden die Beans in Java als ein spezielles Element entwickelt, mit einer festen Aufgabe. Dieses Konzept kommt also aus der Java Welt und wurde für ihre Ansprüche entwickelt. Solche Konzepte werden in der Regel nicht einfach auf andere Plattformen übertragen (bzw. es gibt einfach schon bessere Alternativen).
  Mit Zitat antworten Zitat
HeinzJ

Registriert seit: 17. Aug 2007
Ort: Bremen
84 Beiträge
 
Delphi 2007 Architect
 
#7

Re: Datenbankzugriff - Best Way - Datasets oder Klassen ?

  Alt 11. Dez 2007, 23:46
Wie oben schon erwähnt, habe auch ich bisher hauptsächlich immer nur die Datasets benutzt.
Ich habe auch gerade eine intensive Beschäftigung mit Mustern und Java hinter mir und versuche momentan gerade das mit meinem bisherigem Delphi Know how zusammenzubringen bzw. die Java- und Pattern- Konzepte in Delphi wiederzufinden sowie die Vor-und Nachteile herauszufinden. Ich habe dementsprechend auch schon viel in Delphi ausprobiert . Dazu gehört UML (Together, Modelmaker), ORM, InstantObjects u.v.a. Auch hier im Forum finden sich entsprechende "Beanchen" (Dynamisch erzeugte Datenmodule)
Mittlerweile raucht mir auch der Kopf schon dementsprechend
Daher meine Frage nach dem "Best Way" hinsichtlich der Datenbankprogrammierung.

HeinzJ
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#8

Re: Datenbankzugriff - Best Way - Datasets oder Klassen ?

  Alt 12. Dez 2007, 09:44
Design Pattern sind so eine Sache für sich, die kannst Du völlig unabhängig von der tatsächlichen Programmiersprache einsetzen. Der größte Vorteil, den Design Pattern bieten ist eine durchdachte Architektur. Ein Pattern dokumentiert bereits, welches Problem es zu lösen gilt und auf welche Art und Weise die Lösung erfolgt (und ganz wichtig, auch warum!).
Pattern bieten Dir damit einfach die Möglichkeit, dass Du auf vorhandenes Wissen zurückgreifst. Mögliche Risiken sind eben einfach schon bekannt, ebenso wie ein Lösungsweg usw. Der Einsatz von Pattern lohnt sich also immer (auch wenn einem nicht immer klar ist, wo man diese schon längst verwendet).
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

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

Re: Datenbankzugriff - Best Way - Datasets oder Klassen ?

  Alt 12. Dez 2007, 09:54
HeinzJ, ich hatte neulich eine ähnliche Diskussion.

Ich würde das mal vereinfacht so beantworten:

1. Schreibst du eine kleine Desktop-Anwendung, nimm die TDBEdits, TDatasources und TxxxQuery Komponenten und klick Dir die Anwendung zusammen. Das sollte für einfache(!) Anwendung ausreichen. Eine der Hauptvorteile von Delphi ist ja RAD und so geht das am schnellsten.

2. Schreibst Du eine komplexere Anwendung oder eine mit mehreren Clients, dann solltest Du das OR-Modell wählen. Deiner Mittelschicht spendierst Du eine schöne Schnittstelle, die einfach die logischen Datensätze (z.B. Kunde) aus der DB zusammensammelt, hübsch serialisiert und dem Client als 'Objekt' zuschickt. Der Client verändert dann das Objekt und schickt es zurück. Die Mittelschicht kümmert sich dann ums Abspeichern.

Listen und Auswertungen (Auftrags- Kundenübersichten) dagegen würde ich so nicht implementieren. Da würde ich mir doch ein TDataset gönnen und irgendwie (entweder über die Mittelschicht oder direkt) die DB anzapfen. Ich habe mit Objektlisten performancetechnisch einfach keine guten Erfahrungen gemacht...
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
HeinzJ

Registriert seit: 17. Aug 2007
Ort: Bremen
84 Beiträge
 
Delphi 2007 Architect
 
#10

Re: Datenbankzugriff - Best Way - Datasets oder Klassen ?

  Alt 12. Dez 2007, 12:27
Zitat von Der_Unwissende:
Der größte Vorteil, den Design Pattern bieten ist eine durchdachte Architektur
Richtig. Ich finde aber leider immer nur zeilenlastige Beispiele im Java Bereich. Beispiele in denen Datasets auftauchen sind nicht vorhanden.

Zitat von alzaimar:
Listen und Auswertungen [...] dagegen würde ich so nicht implementieren. Da würde ich mir doch ein TDataset gönnen
Mit solch einem Design hatte ich auch schon mal angefangen. Ich fand aber die Anbindung an diverse gute Grid-Komponeneten einigermaßen unbequem und ging dann dazu über neben Klassen (auch für Listen) ebenfalls auch noch Datasets zu verwenden. So ganz sauber isses dann aber nicht geworden. Ich hatte dann neben diversen Listen Datasets mit sehr ähnlichen Inhalten.

HeinzJ
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:21 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