AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Ruffnummer aus der Tabelle Suchen mit möglichen zeichen..
Thema durchsuchen
Ansicht
Themen-Optionen

Ruffnummer aus der Tabelle Suchen mit möglichen zeichen..

Ein Thema von Karstadt · begonnen am 26. Okt 2006 · letzter Beitrag vom 26. Okt 2006
Antwort Antwort
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#1

Ruffnummer aus der Tabelle Suchen mit möglichen zeichen..

  Alt 26. Okt 2006, 11:40
Datenbank: MYSQL • Version: 4 • Zugriff über: MYDAC
Hallo.

Habe ein Feld Telefonnummer (String).

Nun kann in diesen Feld folgendes stehen:

0451-1111111
oder
04951-11111111
oder
+004951-1111111
oder 0451 - 11 11 11 11 1
oder sonst was..

Nun möchte ich nach diese Nummer suchen 04511111111 wie kann ich das realisieren

nach möglichkeit per SQL. (Das sin ca. 100 DS)
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Ruffnummer aus der Tabelle Suchen mit möglichen zeichen.

  Alt 26. Okt 2006, 11:41
du musst denke ich nacheinander nach jedem einzelnen Zeichen suchen
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Ruffnummer aus der Tabelle Suchen mit möglichen zeichen.

  Alt 26. Okt 2006, 11:45
Hallo,

mit Standard-SQL bekommst du das nicht hin (LIKE kann sowas nicht).
Falls du das auf dem Server suchen musst, kannst du nur eine Stored Procedure nehmen,
die jeden Datensatz abklappert und intern (kompliziert) über substring die
Zeichen '-', ' ' usw. ausfiltert, dann eine Telefonnummer bastelt und dann vergleicht.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Ruffnummer aus der Tabelle Suchen mit möglichen zeichen.

  Alt 26. Okt 2006, 11:52
Hi,

Wenn man das Statement im Code basteln kann, müsste es in etwa so aussehen:

  ... where telefonnummer like '%4%5%1%1%1%1%1%1%1%1%'; Besser wäre natürlich, mann würde die Nummer über einen Trigger formatiert in einem 2. Feld ablegen.
Aber wie das bei MySQL funktioniert, weiss ich nicht.

Cu, frank
Frank Reim
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Ruffnummer aus der Tabelle Suchen mit möglichen zeichen.

  Alt 26. Okt 2006, 11:59
Du könntest die Telefonnummer in zwei Felder abspeichern:
Formatiert (0451-1111111) und nur als Ziffernfolge (04511111111)
Beim Suchen entfernst du alle Sonderzeichen und suchst nur nach der Ziffernfolge.
Für die internat. Vorwahl (z.B. +49) musst du dir noch zusätzlich Gedanken machen.
Andreas
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#6

Re: Ruffnummer aus der Tabelle Suchen mit möglichen zeichen.

  Alt 26. Okt 2006, 12:46
shmia Diese lösung ist mir auch lieber. (während der Pause bin ich auch auf diese Lösung gekommen)

ObBeforPost wird mir die integerzahlen in einen extrafeld abspeichern...

Danke für ihre Hilfe.
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#7

Re: Ruffnummer aus der Tabelle Suchen mit möglichen zeichen.

  Alt 26. Okt 2006, 13:18
Delphi-Quellcode:
Function TForm1.GibNummerAusString(Nr:String):String;
var i, tr_i: Integer;
    Nummer:String;
begin
  Nummer := '';

  for i := 1 to Length(Nr) do
  begin
    If TryStrToInt(Nr[i],tr_i) Then Nummer := Nummer + Nr[i];
  end;

  Result := Nummer;
end;
nun habe ich alles.. um die Abfrage mache ich mir nun keine Sorgen mehr...
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: Ruffnummer aus der Tabelle Suchen mit möglichen zeichen.

  Alt 26. Okt 2006, 14:15
Denk daran, dass ein 32Bit integer nur bis 2147483647 reicht; also nur 9 bis 10 Ziffern aufnehmen kann.
Nimm besser folgende Funktion:
Delphi-Quellcode:
// kopiert aus der JCL
function StrKeepChars(const S: string; const Chars: TSysCharSet): string;
var
  Source, Dest: PChar;
  Len, Index: Integer;
begin
  Len := Length(S);
  SetLength(Result, Len);
  UniqueString(Result);
  Source := PChar(S);
  Dest := PChar(Result);
  for Index := 0 to Len-1 do
  begin
    if Source^ in Chars then
    begin
      Dest^ := Source^;
      Inc(Dest,SizeOf(Char));
    end;
    Inc(Source,SizeOf(Char));
  end;
  SetLength(Result, (Longint(Dest) - Longint(PChar(Result))) div SizeOf(Char));
end;

telnr_ohne_sonderzeichen := StrKeepChars(telnr, ['0'..'9']);
Andreas
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#9

Re: Ruffnummer aus der Tabelle Suchen mit möglichen zeichen.

  Alt 26. Okt 2006, 14:21
If TryStrToInt(Nr[i],tr_i) Then Nummer := Nummer + Nr[i]; Es wird nur 1 zeichen überprüft...
  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 11:32 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