AGB  ·  Datenschutz  ·  Impressum  







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

SQL Suchabfrage

Ein Thema von Budda · begonnen am 21. Nov 2003 · letzter Beitrag vom 21. Nov 2003
Antwort Antwort
Budda

Registriert seit: 3. Sep 2003
96 Beiträge
 
Delphi 7 Professional
 
#1

SQL Suchabfrage

  Alt 21. Nov 2003, 10:23
Mahlzeit,

also folgendes Problem. Ich möchte mir eine SQl Suchabfrage machen die in einer bestimmten Tabelle in einer bestimmten Spalte nach einem Text sucht.

Habe dazu eine Combobox in der ich die Tabelle aussuchen kann und eine Combobox wo ich aussuchen kann welche Spalte und zu guterletzt noch ein Editfeld wo der Suchbegriff eingegeben wird. Soweit so gut, habe nun folgendes probiert:
Delphi-Quellcode:
ADOQuery1.Active := false;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add ('select * from' + QuotedStr ('%' + ComboBox1.Text + '%') +' where' + QuotedStr ('%' + ComboBox2.Text + '%') +' like' + QuotedStr ('%' + Edit1.Text + '%'));
ADOQuery1.SQL.Add ('order by wert1');
ADOQuery1.Active := true;
DBGrid1.Refresh;
So das problem an der ganzen Sache ist das wenn ich z.B. einen Namen eingebe der exakt so in der DB ist bekomm ich kein resultat. Des Weiteren hätte ich ganz gerne das man auch nur nach teilen suche kann, also mit *textstück oder textstück* etc. Halt diese Variablen die man normalerweise bei einer Suche in anderen Programmen zuer Verfügung hat.

Könnt mir da vielleicht jemand weiterhelfen ?

Gruss
Budda
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: SQL Suchabfrage

  Alt 21. Nov 2003, 10:32
Hai Budda,

Zitat von Budda:
Mahlzeit
Mahl dir deine Zeit doch selber

Warum setzt Du denn den Tabellen- und Spaltennamen in Hochkommas? Das brauchst Du denke ich nicht.

Zitat:
... nach teilen suche kann, also mit *textstück oder textstück* etc.
Durch den Einsatz von
feldname LIKE %suchwort% machst Du das ja schon.

Wenn Du es so machen möchtest wie Du schreibst würde ich das so machen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 sSuchString : String;
begin
 sSuchString := StringReplace(Edit1.Text,'*','%');
 ADOQuery1.Close;
 ADOQuery1.SQL.Clear;
 ADOQuery1.SQL.Add ('select * from' + ComboBox1.Text + ' where' + ComboBox2.Text ' like' + QuotedStr (sSuchString));
 ADOQuery1.SQL.Add ('order by wert1');
 ADOQuery1.Open;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Budda

Registriert seit: 3. Sep 2003
96 Beiträge
 
Delphi 7 Professional
 
#3

Re: SQL Suchabfrage

  Alt 21. Nov 2003, 11:02
Zitat:
Mahl dir deine Zeit doch selber
Erwischt

Ersteinmal danke für deine Hilfe, allerdings hakt es noch bei dem StringReplace, da möchte er gerne noch mehr Parameter haben. Er scheint da noch Flags haben zu wollen, nur die Frage welche ^^

Gruss
Budda
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#4

Re: SQL Suchabfrage

  Alt 21. Nov 2003, 11:05
Zitat:
Er scheint da noch Flags haben zu wollen, nur die Frage welche ^^
Versuchs mit rfReplaceAll
  Mit Zitat antworten Zitat
OLLI_T

Registriert seit: 13. Okt 2003
Ort: Nähe Wetzlar / Hessen
143 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: SQL Suchabfrage

  Alt 21. Nov 2003, 11:40
Hallo Budda!

Übersichtlicher wird datt ganze mit der Fkt Format. Das like wird nur bei Bedarf gesetzt (ungetestet):

Delphi-Quellcode:
S:=Edit1.Text;
Sep:='=';
If S[1]='*Then Begin S[1]:='%'; Sep:='like'; End;
L:=Length(S);
If S[L]='*Then Begin S[L]:='%'; Sep:='like'; End;

ADOQuery1.SQL.Add(S:=Format('Select * From %s Where %s %s "%s"',[ComboBox1.Text,ComboBox2.Text,Sep,S]));
Gruss

OLLI
No Pain No Gain!
  Mit Zitat antworten Zitat
Budda

Registriert seit: 3. Sep 2003
96 Beiträge
 
Delphi 7 Professional
 
#6

Re: SQL Suchabfrage

  Alt 21. Nov 2003, 12:51
Jup, danke funktioniert nun alles
  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 09:20 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