AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Suchen mit TQuery ?

Ein Thema von Vader · begonnen am 24. Mär 2006 · letzter Beitrag vom 24. Mär 2006
Antwort Antwort
Seite 1 von 3  1 23      
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#1

Suchen mit TQuery ?

  Alt 24. Mär 2006, 10:45
Datenbank: Paradox • Version: 7 • Zugriff über: TQuery
hallo,

bei datenzugriff mit ttable habe ich so gesucht, nach einen bestimmtem wort in einen feld
der paradoxtabelle ,mit hilfe eines edit wo man den suchbegriff eingibt und einen
buttonclickereigniss der die suche startet

Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var suche: string;
begin

suche:= edit1.Text;
Table1.Locate('Nachname', suche, [loCaseInsensitive,loPartialKey ]);

end;
wie schaut das buttonclickereigniss bei tquery aus ?
mfg vader
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Suchen mit TQuery ?

  Alt 24. Mär 2006, 10:52
Hallo Vader,

beim Arbeiten mit Datenbanken hast du fast immer eine Listenansicht und eine Detailansicht. Wenn du in der Liste suchen willst, dann verwendest du Locate() - egal ob TTable oder TQuery das DataSet bereitstellen. Du suchst ja dann in den Daten, die von deiner Anwendung schon gezeigt werden.

TQuery bietet dir im Gegensatz zu TTable die Möglichkeit die Gesamtmenge der Zeilen einer Tabelle oder Sicht sinnvoll zu beschränken. Dazu dient die WHERE-Klausel im SQL-Statement.

SELECT * FROM tabelle WHERE name = :suche Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#3

Re: Suchen mit TQuery ?

  Alt 24. Mär 2006, 10:58
hi

ich würde das auch so machen


Delphi-Quellcode:

MyQuery.SQL.TEXT := 'select * from table where Nachname = :parNachname';
MyQuery.Params.ParamByName('parNachname').AsString:=edit1.text;
MyQuery.active:=true;

lg
Bundy
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Suchen mit TQuery ?

  Alt 24. Mär 2006, 11:00
Hallo Vader,

das Thema wurde mit dir doch schon in diesem Betreff erläutert
Markus Kinzler
  Mit Zitat antworten Zitat
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Suchen mit TQuery ?

  Alt 24. Mär 2006, 11:09
ja, aber da habe ich meine kleine datenbank mit ttable gemacht und wollte wissen wie man sucht,
jetzt habe ich sie mit tquery, ich möchte denn unterschied kennenlernen zwischen ttable und tquery,
vorteile,nachteile bevor ich mir ein buch kaufe

mfg vader
  Mit Zitat antworten Zitat
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: Suchen mit TQuery ?

  Alt 24. Mär 2006, 11:18
marabu schreibt:
Zitat:
TQuery bietet dir im Gegensatz zu TTable die Möglichkeit die Gesamtmenge der Zeilen einer Tabelle oder Sicht sinnvoll zu beschränken. Dazu dient die WHERE-Klausel im SQL-Statement.
SELECT * FROM tabelle WHERE name = :suche habs so probiert

Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
begin
SELECT * FROM tabelle WHERE name = :suche
end;
fehlermeldung:

[Fehler] Unit1.pas(87): Undefinierter Bezeichner: 'SELECT' mfg vader
  Mit Zitat antworten Zitat
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
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#8

Re: Suchen mit TQuery ?

  Alt 24. Mär 2006, 11:25
Der unerschild liegt auf der Hand.

Wenn du eine Datenbankanwendung programmierst, die über das Web laufen soll, dann hast du mit Query enorme einspahrungen in den Ladezeiten.

Bei einem Table lades du mal alle Daten, und dann "Locatest" du einen oder mehrer Datensätze.
Aber zu diesem Zeitpunkt hast du schon alle Daten geladen (problem wenn du zb. 20.000 Datensätze ladest)

Beim Query definierst du vorher was du laden willst, und geladen wird dann nach SQL CODE.



lg
Bundy
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#9

Re: Suchen mit TQuery ?

  Alt 24. Mär 2006, 11:26
uups da hab ich wieder zu langsam getippt
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#10

Re: Suchen mit TQuery ?

  Alt 24. Mär 2006, 11:58
hallo sharky,

das bringt ein bißchen licht ins dunkel, datenbankprogrammierung ist irgenwie etwas anders, wie das tagesgeschäft !

das funzt jetzt in einen feld der tabelle suchen, und jetzt kommts, denn das wollte ich bei ttable, aber
dort hat es nicht funktioniert, ich möchte nach einen bestimmten wort, in der ganzen tabelle suchen ?

wie muß ich den code von sharky ändern ?
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;
mfg vader
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 11:23 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