AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Funktion: wie am besten Tabelle übergeben
Thema durchsuchen
Ansicht
Themen-Optionen

Funktion: wie am besten Tabelle übergeben

Ein Thema von jokerfacehro · begonnen am 8. Mär 2011 · letzter Beitrag vom 8. Mär 2011
Antwort Antwort
Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#1

AW: Funktion: wie am besten Tabelle übergeben

  Alt 8. Mär 2011, 07:00
viell. habe ich mich etwas unklar ausgedrückt.

ich habe eine DB und greife per ADO darauf zu.
in der DB sind mehrere Tabellen, manche tabellen brauche ich ganz und bei manchen nur datensätze.

z.B. möchte ich einer Funktion die gesamte Tabelle1 übergeben, damit diese daraus die Baumstruktur liest.

mir geht es nur darum, welche Datentypen (TAdoTable, Query etc) verwenden sollte, da ich bisher kaum mit DBs gearbeitet hatte. Welcher halt für welche Anwendung am besten geeignet ist (einzelne Datensätze, gesamte Tabellen ...)
"Never touch a running system administrator !"
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: Funktion: wie am besten Tabelle übergeben

  Alt 8. Mär 2011, 07:32
Nun ja, wenn du die ganze Tabelle brauchst nimm doch TADOTable. Wenn du nur Datensätze oder Konglomerate aus mehrerern Tabellen brauchst TADOQuery, wo du im SQL-Statement die Datensätze einschränken kannst bzw. die Daten aus mehreren Tabellen zusammenfassen kannst.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Funktion: wie am besten Tabelle übergeben

  Alt 8. Mär 2011, 08:09
Für die Datenbank besteht kein Unterschied ob ich per ADOTable die Tabelle "foo" hole, oder per ADOQuery "SELECT * FROM foo".
Intern passiert das gleiche

ADOTable holt halt das Daten-Objekt (Tabelle, Sicht) komplett von der DB ab ohne Wenn und Aber.
Mit ADOQuery kann ich vor dem Übertragen bestimmen welche Spalten und welche Datensätze geholt werden.

Brauchst du nur einen Datensatz, dann definitiv mit ADOQuery.
Brauchst du die ganze Tabelle, dann geht auch ADOTable.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Funktion: wie am besten Tabelle übergeben

  Alt 8. Mär 2011, 08:56
[OT]
Wir haben die "Mischerei" vor Jahren aufgegeben und verwenden für alles TAdoDataset
[/OT]
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Funktion: wie am besten Tabelle übergeben

  Alt 8. Mär 2011, 09:55
Ok danke für die Infos.

ich habe mich jetzt für Query entschieden, da ich doch öfter JOINS brauche und mit SQL vertraut bin.
"Never touch a running system administrator !"
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

AW: Funktion: wie am besten Tabelle übergeben

  Alt 8. Mär 2011, 10:15
Also ich vermute, es gab hier im Thread einige Missverständnisse.
Wenn man Daten aus einer Tabelle oder Query auslesen möchte und dies in einer eigenen Funktion tut, dann sollte man ganz klar die Klasse TDataset verwenden.
Delphi-Quellcode:
procedure TForm1.DatenAnzeigen(ds:TDataset);
begin
  MemoDaten.Clear;
  MemoDaten.Lines.Add('Name='+ds.FieldByName('Bezeichnung').AsString);
  MemoDaten.Lines.Add('Preis='+ds.FieldByName('Preis').AsString);
end;

procedure TForm1.Machwas;
begin
  ADOQueryArtikel.Open;
  if not ADOQueryArtikel.IsEmpty then
    DatenAnzeigen(ADOQueryArtikel);
end;
Man sieht also, dass zwar eine AdoQuery verwendet wird aber zum Anzeigen nur die Basisklasse TDataset übergeben wird.
Dies hat zwei Vorteile:
1.) man kann problemlos von einer AdoQuery zum AdoDataset wechseln ohne dass die Anzeige-Prozedur geändert werden müsste
2.) man drückt klar seine Absicht aus, dass man nur mit einem Dataset arbeiten möchte.
Der Aufrufer muss also nicht damit rechnen, dass z.B. das Property SQL verändert werden könnte
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Funktion: wie am besten Tabelle übergeben

  Alt 8. Mär 2011, 11:52
Danke für die Erläuterung
"Never touch a running system administrator !"
  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 01:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz