AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ADS locate - Zeichen ignorieren?
Thema durchsuchen
Ansicht
Themen-Optionen

ADS locate - Zeichen ignorieren?

Ein Thema von Grolle · begonnen am 10. Feb 2006 · letzter Beitrag vom 2. Mär 2006
Antwort Antwort
Seite 1 von 2  1 2      
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#1

ADS locate - Zeichen ignorieren?

  Alt 10. Feb 2006, 11:58
Datenbank: ADS Local • Version: 7.1 • Zugriff über: TDataSet
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...

  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: ADS locate - Zeichen ignorieren?

  Alt 10. Feb 2006, 12:05
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)
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#3

Re: ADS locate - Zeichen ignorieren?

  Alt 11. Feb 2006, 15:02
Hi!
Danke für deine Antwort erstmal.
Zitat:
Das geht dann wohl nur mit einer while-Schleife.
Wie umsetzen? Die Datensätze müssen noch zugeordnet werden können.

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...

  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#4

Re: ADS locate - Zeichen ignorieren?

  Alt 16. Feb 2006, 23:21
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...

  Mit Zitat antworten Zitat
marabu

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

Re: ADS locate - Zeichen ignorieren?

  Alt 17. Feb 2006, 09:52
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:

select TOP 1 * from TABLE1 where TELEFON < :NUMMER order by TELEFON 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.

Grüße vom marabu
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#6

Re: ADS locate - Zeichen ignorieren?

  Alt 21. Feb 2006, 22:22
Hallo Marabu!
Zitat:
Wenn die Rufnummern grundsätzlich in der Form Ortsnetzkennzahl/Teilnehmer gespeichert sind
Sind sie leider nicht. Andere Sonderzeichen können bzw. dürfen (bis jetzt) auch vorkommen.

Viele Grüße...

  Mit Zitat antworten Zitat
marabu

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

Re: ADS locate - Zeichen ignorieren?

  Alt 23. Feb 2006, 18:49
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
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#8

Re: ADS locate - Zeichen ignorieren?

  Alt 23. Feb 2006, 19:21
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...

  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: ADS locate - Zeichen ignorieren?

  Alt 23. Feb 2006, 20:07
Zitat:
Gibt es da noch eine Möglichkeit (wie war das mit der Schleife gemeint?)?
So in etwa
Delphi-Quellcode:
while not tabelle.eof do
begin
   if VergleichsFunktion(TabelleTelefonNummernFeld.AsString, EditSuche.Text) then
      break;
   tabelle.next;
end;
Damit findest Du aber natürlich nur den ersten Treffer. Überleg Dir doch nochmal, ob Du nicht doch vielleicht TAdsQuery einsetzen möchtest.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#10

Re: ADS locate - Zeichen ignorieren?

  Alt 23. Feb 2006, 21:08
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...

  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:03 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