![]() |
Datenbank: ADS Local • Version: 7.1 • Zugriff über: TDataSet
ADS locate - Zeichen ignorieren?
Hallo!
Ich durchsuche mit locate eine bestimmte Spalte der Tabelle. Ist es dabei möglich bestimmte Zeichen im String zu ignorieren? Bsp.: AdsTable1.Locate('Telefon',02309561054,[]). In der Datenbank ist die Nummer aber so gespeichert: 02309/561054 . Also soll locate das / ignorieren. Viele Grüße... |
Re: ADS locate - Zeichen ignorieren?
Das geht dann wohl nur mit einer while-Schleife. Oder Du verwendest SQL für die Abfrage und springst dann über den PK im DataSet auf den richtigen Satz. Alternativ könntest Du auch Daten und Maskenzeichen separat speichern (Ähnlich wie die Telefonnummerneinträge bei den MS-DFÜ-Verbindungen)
|
Re: ADS locate - Zeichen ignorieren?
Hi!
Danke für deine Antwort erstmal. Zitat:
Die anderen beiden Vorschläge kommen nicht in Frage, da man für SQL die TQuery braucht (hab nur eine Tabelle) und bei der Lösung wie bei der DFÜ-Verbindung sind zwei verschiedene Edit-Felder nötig. Ich habe jetzt überlegt einfach eine neue Spalte anzulegen wo ich die Nummern ohne Sonderzeichen hineinkopiere. Viele Grüße... |
Re: ADS locate - Zeichen ignorieren?
Hallo!
Ich muss das Thema nochmal hochholen. So wie ich es vorhatte klappt es nicht (zusätzliches Feld in DB). Gibt es da noch eine Möglichkeit (wie war das mit der Schleife gemeint?)? Viele Grüße... |
Re: ADS locate - Zeichen ignorieren?
Hallo Stefan.
Wenn die Rufnummern grundsätzlich in der Form Ortsnetzkennzahl/Teilnehmer gespeichert sind, dann könntest du dir mit einer Query erstmal die Vorwahl besorgen:
SQL-Code:
Der Wert des Feldes TELEFON vor dem Slash ist die Vorwahl. Wenn sie nicht mit den ersten Stellen deiner gesuchten Nummer übereinstimmt, dann wirst du die Nummer nie finden. Andernfalls hast du sie vielleicht schon gefunden. Wenn doch nicht, dann kennst du ja jetzt die Stelle, an der du den Slash in deinen Suchstring einfügen musst um mit Locate() oder einer weiteren Query zum Ziel zu kommen.
select TOP 1 * from TABLE1 where TELEFON < :NUMMER order by TELEFON
Grüße vom marabu |
Re: ADS locate - Zeichen ignorieren?
Hallo Marabu!
Zitat:
Viele Grüße... |
Re: ADS locate - Zeichen ignorieren?
Hallo Stefan,
du hast zwar geschrieben, dass du kein zusätzliches Feld an die Tabelle anhängen kannst, aber hast du schon erwogen eine zusätzliche Tabelle (1:1 lookup table) zu generieren? Die muss nur den PK der Originaltabelle als FK, sowie die normierte Telefonnummer enthalten. Grüße vom marabu |
Re: ADS locate - Zeichen ignorieren?
Hi Marabu!
Ne, daran habe ich noch nicht gedacht. Hab's auch noch nie gemacht. Die Frage ist, ob es sich lohnt bei nur einer Tabelle, die ich da habe?!? Werde ich mich mal dransetzen. Viele Grüße... |
Re: ADS locate - Zeichen ignorieren?
Zitat:
Delphi-Quellcode:
Damit findest Du aber natürlich nur den ersten Treffer. Überleg Dir doch nochmal, ob Du nicht doch vielleicht TAdsQuery einsetzen möchtest.
while not tabelle.eof do
begin if VergleichsFunktion(TabelleTelefonNummernFeld.AsString, EditSuche.Text) then break; tabelle.next; end; |
Re: ADS locate - Zeichen ignorieren?
Hi Union!
Das werde ich mal testen mit der Schleife. Danke für den Denkanstoss. Ich brauche auch lediglich den ersten Treffer. Viele Grüsse... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:48 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