![]() |
Re: Suche in einer Access Datenbank mit Delphi
Text ist aber wie auch CommandText lediglich eine Stringvariable, die vorher definiert wird.. somit könnte da auch Schrott := 'SELECT.... stehen wenn vorher var Schrott : String; als Variable definiert worden ist. Das mit den Hochkommas probiere ich jetzt mal.
|
Re: Suche in einer Access Datenbank mit Delphi
Zitat:
|
Re: Suche in einer Access Datenbank mit Delphi
Du könntest ein Volltext Filter einbauen.
Die Funktion CompareWildText findest du hier: ![]()
Delphi-Quellcode:
Jetzt musst du den Filter nur noch scharfmachen:
procedure TForm1.DoFilterRecord(DataSet: TDataSet;var Accept: Boolean);
var i : Integer; fields : TFields; begin fields := dataset.Fields; for i := 0 to fields.Count-1 do begin if CompareWildText(DeinSuchTextString, fields[i].Text) then begin Accept := True; Exit; end; end; Accept := False; end;
Delphi-Quellcode:
DeinSuchTextString := '*SEX*';
ADOQuery1.OnFilterRecord := self.DoFilterRecord; ADOQuery1.Filtered := True; |
Re: Suche in einer Access Datenbank mit Delphi
Zitat:
|
Re: Suche in einer Access Datenbank mit Delphi
tatsächlich hat es an dem CommandText Befehl gelegen..hab Text sofort gegen CommandText ausgetauscht und es funktioniert.. allerdings nicht so wie ich es haben wollte..
sprich, wenn ich in der Bezeichnung nach "Eimer" suche und jetzt in der tabelle auch Holzeimer, Metalleimer usw. eben andere Wörter mit Eimer drin sind..geht der Marker nur zu einem dieser Eimer und zeigt die restlichen nicht an...was kann ich dagegen machen ? habe nun einfach das erste ''%' durch ''' ersetzt dann sucht er mit dem Edit1.Text aber zeigt nunmehr die Zusammenhängenden Wörter nicht mehr an in denen Edit1.Text vorkommt ..hmm |
Re: Suche in einer Access Datenbank mit Delphi
Zitat:
Möchte man das Gleiche in SQL erreichen dann würde folgendes herauskommen:
SQL-Code:
Die SQL Anweisung müsste dynamisch zur Laufzeit erzeugt werden.
SELECT * FROM Kundenstamm WHERE (Name1 like :P1) or (Name2 like :P2) or (Name3 like :P3) or (PLZ like :P4) or ....
Ich denke mein Vorschlag hat durchaus seine Anwendungsmöglichkeiten. |
Re: Suche in einer Access Datenbank mit Delphi
Hallo Avax2k,
die Suche arbeitet case sensitive - "Eimer" ist nicht gleich "eimer". Hier noch eine Variante, wie du das SQL Statement auch aufbauen kannst:
Delphi-Quellcode:
Irgendwann wirst du dich dann für die Eigenschaft Parameters von TADODataSet interessieren und dir das entsprechende Kapitel in der Online Hilfe durchlesen.
const
sel = 'SELECT * FROM Datenbank WHERE UPPER(Bezeichnung) LIKE %s'; begin ... CommandText := Format(sel, [QuotedStr('%' + AnsiUppercase(Edit1.Text) + '%')]); ... end; marabu |
Re: Suche in einer Access Datenbank mit Delphi
danke für die zahlreiche Hilfe und die vielen Erläuterungen... sorry, wenn ich mich nicht all zu geschickt anstellen sollte
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 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 by Thomas Breitkreuz