Thema: Delphi Suchen mit TQuery ?

Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

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

Re: Suchen mit TQuery ?

  Alt 24. Mär 2006, 11:19
Zitat von Vader:
... ich möchte denn unterschied kennenlernen zwischen ttable und tquery, ...
Hai Vader,

der unterschied ist eigentlich recht einfach erklärt.
Eine TTable holt immer alle Datensätze einer Tabelle aus der Datenbank. Das filtern findet dann lokal auf dem Client statt.

Bei einem TQuery sagst DU der Datenbank was für Datensätze Du haben möchtest (z.B. WHERE feld = value).

Daraus folgt das die Datenmenge die Du bei einer TTable bekommst dem SQL-Befehlt SELECT * FROM tabelle eines TQuery enspricht.


Was ist nun der Nachteil einer TTable? Wie gesagt werden immer alle Felder und alle Datensätze einer Tabelle zum Client übertragen.

Stelle dir nun vor Du hast eine Tabelle mit den Adressen aller Einwohner von Deutschland und suchst nun die Hausnummer eines Menschen von dem Du Name, PLZ und Strasse kennst.

Bei einer TTable würden jetzt also zig Millionen Datensätze (mit allen Feldern jedes DS) zu deinem Clientübertragen und dort würdest Du dann suchen bzw. filtern.

Bei einer TQuery sagst Du einfach:
SELECT hausnummer von tabelle WHERE (plz = :such_plz) AND (strasse = :such_strasse) AND (name = :such_name) Jetzt bekommst Du von der DB zu deinem Client nur die Hausnummern welche deiner Suchanfrage entsprechen.
Das sind dann vielleicht einige hundert Byte. Und bei einer TTable sind es einige hunder MegaByte.

Ich hoffe das bringt etwas Licht in die Dunkelheit.

Nachtrag!!!
@Vader: Du musst den Code den man Dir zeigt auch so übernehmen.

Es müsste bei dir also so aussehen:
Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
begin
  Query1.Close;
  Query1.SQL.Text := 'SELECT * FROM tabelle WHERE name = :suche';
  Query1.ParamCheck := True;
  Query1.ParamByName('suche').AsString := Edit1.Text;
  Query1.Open
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat