AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Klasse für Datenbankoperation. Richtiger weg?
Thema durchsuchen
Ansicht
Themen-Optionen

Klasse für Datenbankoperation. Richtiger weg?

Ein Thema von Sharky · begonnen am 8. Jun 2005 · letzter Beitrag vom 8. Jun 2005
Antwort Antwort
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#1

Klasse für Datenbankoperation. Richtiger weg?

  Alt 8. Jun 2005, 12:07
Hai,

zur Zeit tippe ich aus Spass eine kleine Buchverwaltung.
Um eine möglichst klare Trennung zwichen der GUI und den "Tabellenoperationen" zu haben dachte ich mir diese jeweils in eine kleine Klasse zu packen.

Als Beispiel hänge ich mal die Unit für die Autoren an. Ist dies der richtige Ansatz?

P.S.: In diesem Fall ist eine AbsoluteDatabase verwendet. Aber das sollte ja egal sein.

Für Anregungen bin ich immer dankbar.
Angehängte Dateien
Dateityp: pas u_autorklasse_529.pas (4,1 KB, 28x aufgerufen)
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#2

Re: Klasse für Datenbankoperation. Richtiger weg?

  Alt 8. Jun 2005, 12:45
Hallo Shary,
ich kann zwar nicht behaupten, dass ich besonders viel Programmiererfahrung hab, aber ich bin auch gerade dabei sone Art Bibliotheksverwaltung zu schreiben. Vielleicht interessieren dich auch meine Ansätze(ob du damit was anfangen kannst steht wahrscheinlich au nem anderen Blatt ).

Zur Info:
- Ich benutze MySQL und MySQLdirect
- Ich hab eine Klasse TBib, die alle Objekte instanziert und wieder freigibt
- Eine globale Variable Bib: TBib;
- Alle anderen Objekte greifen über diese globale Variable auf die anderen zu.(ja ich weiß: schön is was anders, aber so spar ich mir die TypeCasts)

mfg

Christian
Angehängte Dateien
Dateityp: zip bibdb_177.zip (6,5 KB, 10x aufgerufen)
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#3

Re: Klasse für Datenbankoperation. Richtiger weg?

  Alt 8. Jun 2005, 12:57
hmm, das bisschen code sah an und für sich gut aus
WENN
- man über das mischen von englisch/deutsch hinweg sieht
- und dem string parameter im constructor nochn const verpasst



naja und das ladeautor - da wird ja JEDESMAL erst eine instanz von dem query dingen erstellt - kA inwiefern das performant bleibt/ist für mehrerere ladeautor-vorgänge
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Klasse für Datenbankoperation. Richtiger weg?

  Alt 8. Jun 2005, 13:23
Zitat von barf00s:
... kA inwiefern das performant bleibt/ist für mehrerere ladeautor-vorgänge
Wenn es darum geht alle Autoren zu laden werde ich dafür natürlich eine eigene Methode in der Klasse haben. Mir ging es ja um das Prizip das ich anwenden möchte.

P.S.: Das mit dem Englisch/Deutsch ist halt immer so eine Sache. Wähle ich alle "Namen" in Englisch oder in Deutsch?
Aber auch das sollte jetzt nicht die Frage in diesem Thread sein
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

Re: Klasse für Datenbankoperation. Richtiger weg?

  Alt 8. Jun 2005, 13:47
Also das sieht doch ganz gut aus nur ob das auch schnell ist ist die Frage.

[EDIT] Damit das ein bischen schneller geht würd ich TABSQuery.Create(nil) beim Constructor erstellne und global Deklarieren [/EDIT]
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Klasse für Datenbankoperation. Richtiger weg?

  Alt 8. Jun 2005, 14:05
Hai franktron,

ich habe jetzt mal zum Test diesen Code benutzt um einen neuen Autor anzulegen:
Delphi-Quellcode:
procedure TAutor.AC_SpeichernExecute(Sender: TObject);
var
  Autor: TAutorClass;
  Daten: TAutorDaten;
  start: cardinal;
  ende: cardinal;
begin
  start := GetTickCount;
  Autor := TAutorClass.Create('data');
  try
    Daten.ID := -1;
    Daten.Name := E_Name.Text;
    Daten.Memo := Memo1.Text;
    Autor.Daten := Daten;
    Autor.SpeicherAutor;
  finally
    Autor.Free;
  end;
  ende := GetTickCount;
  ShowMessageFmt('Es dauerte %d ms', [ende - start]);
end;
Alles in allem hat es 62ms - 100ms gedauert. Ich denke das ist okay. Andererseits kann ich das Query auch im Constructor der Klasse erzeugen. Er wird ja eh benötigt.

Genau darum habe ich ja diesen Thread gestartet

Edit
Ich habe das Query jetzt mal im Constructor erzeugt. Das macht es auch einfacher das ganze auf eine andere DB zu portieren.
Angehängte Dateien
Dateityp: pas u_autorklasse_101.pas (4,3 KB, 7x aufgerufen)
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  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 05:37 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