AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Suche in der Datenban und Ausgabe im DBGrid???
Thema durchsuchen
Ansicht
Themen-Optionen

Suche in der Datenban und Ausgabe im DBGrid???

Ein Thema von romber · begonnen am 5. Sep 2005 · letzter Beitrag vom 6. Sep 2005
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#21

Re: Suche in der Datenban und Ausgabe im DBGrid???

  Alt 5. Sep 2005, 20:58

Verdammt... Dann muss ich mich verlesen haben. Aber wäre ja auch unlogisch wo man ja mit * arbeiten kann.

@ romber: Sry... Ist wohl schon zu spät für mich.
Jan
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: Suche in der Datenban und Ausgabe im DBGrid???

  Alt 5. Sep 2005, 21:42
Zitat von Sharky:
.. hast Du einmal versucht für die zweite "Like-Abfrage" einen eigenen Parameter anzugeben
Zitat von romber:
Nee, geht auch nicht
Hai romber,
ich habe es jetzt einmal getestet. Wenn ich nur einen Parameter verwende wird dieser auch nur beim ersten vorkommen in der SQL-Abfrage gesetzt. Darum habe ich einen zweiten genommen und blubb es geht.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
begin
  with ADOQuery1 do
  begin
    Close;
    sql.Clear;
    s := '%' + Edit1.Text + '%';
    sql.Text := 'SELECT * FROM test1 ' + #10 +
      'WHERE ((LOWER(kn) LIKE :suche1)' + #10 +
      'OR (LOWER(name) LIKE :suche2))';
    ParamCheck := True;
    Parameters.ParamByName('suche1').Value := LowerCase(s);
    Parameters.ParamByName('suche2').Value := LowerCase(s);
    Open;
  end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#23

Re: Suche in der Datenban und Ausgabe im DBGrid???

  Alt 6. Sep 2005, 00:13
Hehe! Danke! Geht wunderbar!
Würde mich aber noch interessieren, warum es mit dem selben Paramete nicht geht...
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#24

Re: Suche in der Datenban und Ausgabe im DBGrid???

  Alt 6. Sep 2005, 07:46
Ich nehme mal an das wenn er den Parameter ein mal gefunden und erstezt hat, er die Anfrage nicht weiter durchgeht...
Jan
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: Suche in der Datenban und Ausgabe im DBGrid???

  Alt 6. Sep 2005, 08:14
Hai,

ich habe mir das jetzt einmal angesehen.
Das Problem bei der sache ist, wie schon angedeutet wurde, das Delphi-Referenz durchsuchen.ParamByName. Diese Funktion sucht in der Parameterliste nach dem übergebenen Parametername. Beim ersten Auffinden wird das Value gesetzt und dann die Funktion verlassen. Daher das Problem das folgende Parameter mit der gleichen Bezeichnung nicht mit Werten gefüllt werden.

marabu hatte dafür eine "Lösung" gepostet in dem er auf ParamByName verzichtet und die Paramterliste einfach durchgeht und jedem das selbe Value zuweisst.

Allerdings hat der Schlingel einen Fehler in gemacht
Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  s: String;
  i: Integer;
begin
  with ADOQuery1 do
  begin
    Close; // muss sein
    s := '%' + AnsiLowercase(Edit1.Text) + '%';
    sql.Clear;
    sql.Add('SELECT * FROM KUNDEN WHERE LOWER(kn) LIKE :suche ');
    sql.Add('OR LOWER(xy) LIKE :suche ');
    sql.Add('OR LOWER(yz) LIKE :suche ');
    for i := 0 to [b][color=red]ParamCount[/color][/b] - 1 do
      Parameters.Items[i].Value := s;
    open;
  end;
end;
ParamCount liefert nämlich nicht die Anzahl der Parameter in der Parameterliste des Querys sondern die Anzahl der Parameter welche dem Programm übergeben wurden (zB: Programm.exe /1 /2 /3 ).
In diesem Fall müsste der Code so aussehen um das gewünschte Ergebniss zu bekommen:
Code:
.
    for i := 0 to [b][color=red]Parameters.Count[/color][/b] - 1 do
      Parameters.Items[i].Value := s;
.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
marabu

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

Re: Suche in der Datenban und Ausgabe im DBGrid???

  Alt 6. Sep 2005, 10:29
Hi Sharky,

Zitat von Sharky:
Allerdings hat der Schlingel einen Fehler gemacht
das kommt davon, wenn ich meinen Code in den Beitragseditor schreibe und nebenher für die Firma DESDO arbeite...

Fröhliche Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 20:05 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