![]() |
SQL Suchabfrage
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:
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.
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; Könnt mir da vielleicht jemand weiterhelfen ? Gruss Budda |
Re: SQL Suchabfrage
Hai Budda,
Zitat:
Warum setzt Du denn den Tabellen- und Spaltennamen in Hochkommas? Das brauchst Du denke ich nicht. Zitat:
SQL-Code:
machst Du das ja schon.
feldname LIKE %suchwort%
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; |
Re: SQL Suchabfrage
Zitat:
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 |
Re: SQL Suchabfrage
Zitat:
|
Re: SQL Suchabfrage
Hallo Budda!
Übersichtlicher wird datt ganze mit der Fkt Format. Das like wird nur bei Bedarf gesetzt (ungetestet):
Delphi-Quellcode:
Gruss
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])); OLLI |
Re: SQL Suchabfrage
Jup, danke funktioniert nun alles ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz