AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Suchen mit TQuery ?

Ein Thema von Vader · begonnen am 24. Mär 2006 · letzter Beitrag vom 24. Mär 2006
Antwort Antwort
Seite 2 von 3     12 3   
mkinzler
(Moderator)

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

Re: Suchen mit TQuery ?

  Alt 24. Mär 2006, 12:06
Wie gesagt dir Lösung dafür findest du in diesem Thread unter Beitrag 14.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: Suchen mit TQuery ?

  Alt 24. Mär 2006, 12:06
Hai Vader,

wie ist denn deine Tabelle aufgebaut? Sind das alles (Var)Char Felder oder auch Zahlen usw.?

Von Hand würde das so aussehen:
Delphi-Quellcode:
begin
  Query1.Close;
  Query1.SQL.Text := 'SELECT * FROM tabelle WHERE (name = :suche) OR (vorname = :suche1) OR (wassweisich = :suche2)';
  Query1.ParamCheck := True;
  Query1.ParamByName('suche').AsString := Edit1.Text;
  Query1.ParamByName('suche1').AsString := Edit1.Text;
  Query1.ParamByName('suche2').AsString := Edit1.Text;
  Query1.Open
end;
Wobei Du in diesem Fall die Parameter auch in einer Schleife setzen kannst:
Delphi-Quellcode:
procedure TDemoForm.Button1Click(Sender: TObject);
var
  ndx: Integer;
begin
  with Query1 do
  begin
    Close;
    SQL.Text := 'SELECT * FROM tabelle WHERE (name = :suche) OR (vorname = :suche1) OR (wassweisich = :suche2)';
    ParamCheck := True;
    for ndx := 0 to Params.Count - 1 do // Alle Parameter durchlaufen
    begin
      Params[ndx].AsString := Edit1.Text; // und aufgrund des indexes zuweisen
    end;
  end;
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
 
#13

Re: Suchen mit TQuery ?

  Alt 24. Mär 2006, 12:08
Da könntest du mit dem SQL Syntax "like" arbeiten.


Select * from Table where Vorname like %:parSuchbegriff % or Nachname like % :parSuchbegriff or ....
Das % - Zeichen dient alls Joker wie in der Windowssuche der *

mit dem Syntax "or" der steht für "oder".

Ich hoffe das hilft dir weiter



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

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

Re: Suchen mit TQuery ?

  Alt 24. Mär 2006, 12:14
Zitat von mkinzler:
Wie gesagt dir Lösung dafür findest du in diesem Thread unter Beitrag 14.
Hai mkinzler,

ich glaube! dein Code hat einen kleinen Fehler?
Du hast immer den selben Parameternamen verwendet. ParamByName wird dir aber immer den erstgefunden TParam zurück geben und darum die beiden nächsten nicht mit dem Wert füllen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Suchen mit TQuery ?

  Alt 24. Mär 2006, 12:36
Zitat von Sharky:
ich glaube! dein Code hat einen kleinen Fehler?
Du hast immer den selben Parameternamen verwendet. ParamByName wird dir aber immer den erstgefunden TParam zurück geben und darum die beiden nächsten nicht mit dem Wert füllen.
Danke! War mir nicht bewusst, da? das nicht so geht. Habe gedacht, daß erkannt wird, das es sich hier um den selben Parameter handelt.

[edit]liegt das an Paradox, das es nicht funktioniert? Habs gerade mit FB getestet hier funktioniert die mehrfache Verwendung des gleichen Parameters.[/edit]
Markus Kinzler
  Mit Zitat antworten Zitat
Vader

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

Re: Suchen mit TQuery ?

  Alt 24. Mär 2006, 12:44
super, danke!

ich weiß ich bin lästig, aber jetzt wenn ich diese suche starte:
Delphi-Quellcode:
procedure TForm1.Button8Click(Sender: TObject);
begin
Query1.Close;
  Query1.SQL.Text := 'SELECT * FROM adressen WHERE (Nachname = :suche) OR (Vorname = :suche1) ';
  Query1.ParamCheck := True;
  Query1.ParamByName('suche').AsString := Edit1.Text;
  Query1.ParamByName('suche1').AsString := Edit1.Text;
  Query1.Open

end;
dann zeigt er mir nur den gesuchten datensatz im DBGrid an, das ist ja auch gut so,aber wie zeige ich wieder
alle daten im DBGrid an ???

mfg vader
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Suchen mit TQuery ?

  Alt 24. Mär 2006, 12:50
Die WHERE-Clause wieder entfernen, also

SELECT * FROM adressen;
Markus Kinzler
  Mit Zitat antworten Zitat
Vader

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

Re: Suchen mit TQuery ?

  Alt 24. Mär 2006, 13:03
herlichen dank !

ich muß sagen das mit tquery + sql-code gefällt mir besser als ttable !

aber, bei der suche:
Delphi-Quellcode:
procedure TForm1.Button8Click(Sender: TObject);
begin
Query1.Close;
  Query1.SQL.Text := 'SELECT * FROM adressen WHERE (Nachname = :suche) OR (Vorname = :suche1) ';
  Query1.ParamCheck := True;
  Query1.ParamByName('suche').AsString := Edit1.Text;
  Query1.ParamByName('suche1').AsString := Edit1.Text;
  Query1.Open
end;
muß ich genau den namen schreiben ( groß,klein, ganzen namen ausschreiben ) damit der datensatz gefunden wird !!

bei ttable gibts den code:
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
var suche: string;
begin
suche:= edit1.Text;
query1.Locate('Nachname', suche, [loCaseInsensitive,loPartialKey ]);
end;
da brauche ich nur den ersten buchstaben eingeben und schon findet er was, wie geht das bei tquery ?
mfg vader
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Suchen mit TQuery ?

  Alt 24. Mär 2006, 13:05
Verwende LIKE und %
Markus Kinzler
  Mit Zitat antworten Zitat
Vader

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

Re: Suchen mit TQuery ?

  Alt 24. Mär 2006, 13:43
hallo mkinzler,

hab's so probiert aber funzt nicht, wenn ich die suche starte sind alle daten weg ?
Delphi-Quellcode:
procedure TForm1.Button10Click(Sender: TObject);
var suche: string;
begin
  Query1.Close;
  Query1.SQL.Text := 'SELECT * FROM adressen WHERE Nachname like :suche OR Vorname like :suche';
  Query1.ParamCheck := True;
  Query1.ParamByName('suche').asString := 'Edit1.Text';
  Query1.Open ;
end;
mfg vader
  Mit Zitat antworten Zitat
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 06:59 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