AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Nach ähnlichen Schreibweisen suchen
Thema durchsuchen
Ansicht
Themen-Optionen

Nach ähnlichen Schreibweisen suchen

Ein Thema von Kuckuckskind · begonnen am 1. Jan 2003 · letzter Beitrag vom 2. Jan 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Kuckuckskind
Kuckuckskind

Registriert seit: 29. Nov 2002
65 Beiträge
 
Delphi 6 Enterprise
 
#1

Nach ähnlichen Schreibweisen suchen

  Alt 1. Jan 2003, 05:05
Hallo,

wie ich mit Parametern suchen kann, ist j aklar, aber kann ich es automatisch bei Paradix so einstellen, dass auch ähnliche Schreibweisen gefunden werden können?
Wenn ich z.B. nach dem Namen "Mayer" suche, auch die Namen "Maier", "Meyer", "Mayre", "Bayer" etc. ausgegeben werden. Einzige Bedingung: Die Begriffe dürfen sich nur durch maximal zwei Buchstaben unterscheiden.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2
  Alt 1. Jan 2003, 05:36
Gibt es bei SQL nicht sowas wie LIKE? Ich weiß es nicht, ich habe noch nie was mit SQL gemacht und das ist mein e3rstes Posting in der DB-Sparte.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#3
  Alt 1. Jan 2003, 06:00
Hallo!

Bei ähnlichen Suchbegriffen fällt natürlich als Erstes wieder mal der Begiff "Fuzzy".

Außerdem gibt es speziell für Namen noch die Phonemische Umwandlung. Da wird dann z.b. Y zu I, AI zu EI, ER zu R und an bestimmten Stellen verschwindet H. Beispiele:
Maier
Mayer
Meier
Meyer
Meihar
Mayr
werden alle zu MEIR

Allerdings: da sind mehr als 2 Unterschiede möglich und Bayer paßt da nicht rein!

Anwendung: Beim Erfassen den Namen in Phonem-Schreibweise umwandeln, als zusätzliches Datenfeld speichern. Beim Suchen die Eingabe in Phonem umwandeln und mit dem zusätzlichen Feld vergleichen. Gleich: Name ist eine Schreibweise des Suchbegriffs.

Das Ganze dürfte aber recht aufwendig werden.

Gruß

Dietmar Brüggendiek
Dietmar Brüggendiek
  Mit Zitat antworten Zitat
xbu58

Registriert seit: 10. Dez 2002
Ort: Bäretswil / Schweiz
121 Beiträge
 
Delphi 7 Enterprise
 
#4
  Alt 1. Jan 2003, 09:56
Hallo Thea

Das Problem mit ähnlichen Begriffen ist in den meisten DB-Servern mit der System-Funktion SOUNDEX gelöst worden. Die Frage ist aber, ob Paradox das auch kann. Du kannst einmal folgendes versuchen:
Code:
SELECT * FROM autoren FROM SOUNDEX(Nachname) = SOUNDEX('Maier')
Das funktioniert auf SQL-Server und SQL-Anywhere. Aber Paradox.....

Gruss
Xaver
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#5
  Alt 1. Jan 2003, 14:17
Hallo Kuckuckskind,

Paradox kennt nur LocalSQL. Da gibt es leider keinen LIKE Operator und keine SOUNDEX Funktion. Auch hier hilft nur die manuelle Suche. Du benötigst also eine Funktion, die ähnliche Strings findet und nutzt diese in einer Schleife. hier gibt es z.B. eine Funktion "Like", die die Aufgabe erfüllen könnte. Google doch mal mit "Delphi +like +Strings", da findest du bestimmt was.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
xbu58

Registriert seit: 10. Dez 2002
Ort: Bäretswil / Schweiz
121 Beiträge
 
Delphi 7 Enterprise
 
#6
  Alt 1. Jan 2003, 14:38
Hallo MrSpock

Leider liegst Du mit der Aussage, dass Paradox LIKE nicht kennt falsch. Paradox kennt sehr wohl LIKE. Kuckuckskind verwendet diesen Operator ja schon mit erfolg! Es ist also auch möglich, dass SOUNDEX funktioniert. Ich weiss es aber eben nicht. Also zuerst einmal versuchen.

LIKE kann aber in keinem SQL-Dialekt, den ich kenne, eine Ähnlich-Funktion erfüllen. Es ist also eine Soundex-Methode dafür nötig. Das Problem liegt aber darin, dass Soundex aus naheliegenden Gründen keine LIKE-Wildcard enthalten kann. Es ist also nicht möglich nach %Maier% mit SOUNDEX zu suchen.

Wenn Paradox SOUNDEX nicht unterstützt, so gibt es noch eine weitere Möglichkeit. Man kann zum Beispiel für alle Felder, in welchen man nach Soundex suchen möchte ein zusätzliches Feld anlegen, in dem man den Soundex-Wert manuell speichert. Es gibt übrigens eine Freeware-Komponente unter:
http://www.torry.net/
Ich bin aber nicht sicher, ob diese korrekte Resultate für Deutsch liefert.

Gruss
Xaver
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#7
  Alt 1. Jan 2003, 15:15
Hallo xbu58,

tja, so kann man sich irren. Ich hab nur schnell in der OH nachgeschaut und dort LIKE bei Local SQL nicht gefunden. Dann hab ich noch kurz den DB-Explorer von Delphi geöffnet und eine Abfrage auf eine Paradoxtabelle formuliert, die den LIKE Operator benutzt. Der Explorer hat gemeldet, "unbekanntes Schlüsselwort LIKE". Daher hatte ich angenommen, dass LIKE nicht in lokal SQL unterstützt wird. Ich probier es nachher noch einmal aus.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
xbu58

Registriert seit: 10. Dez 2002
Ort: Bäretswil / Schweiz
121 Beiträge
 
Delphi 7 Enterprise
 
#8
  Alt 1. Jan 2003, 15:42
Hallo MrSpock

Wie Du wahrscheinlich gemerkt hast, arbeite ich selber nicht mit Paradox sondern mit SQL-Server und SQLAnywhere. Ich kann als nicht sagen, warum es bei Kuckuckskind geht und bei Dir nicht. Ev. arbeitet Kuckuckskind über einen ODBC-Treiber mit Paradox.
Das wäre gar nicht so schlecht, da man damit eine gewisse Unabhängigkeit von Paradox erreichen würde.
Als probiere mal, ob Du es wirklich nicht hinkriegst. Würde mich auch interessieren. Muss ja schlieslich auch meinen Horizont erweitern.

Gruss
Xaver

Übrigens: Wie definiert sich der geistige Horizont? Nun ganz einfach. Es ist der Abstand zwischen Kopf und Brett multipliziert mit dem proximativ errechneten Wert des sozialen Niveaus.
  Mit Zitat antworten Zitat
Benutzerbild von Kuckuckskind
Kuckuckskind

Registriert seit: 29. Nov 2002
65 Beiträge
 
Delphi 6 Enterprise
 
#9
  Alt 2. Jan 2003, 02:42
Zitat von xbu58:
Ev. arbeitet Kuckuckskind über einen ODBC-Treiber mit Paradox.
Hä???

Warum muss ich eigentlich Pradox benutzen, wenn Paradox doch nix kann... kann ich nicht noch im Nachhinein wechseln?
  Mit Zitat antworten Zitat
xbu58

Registriert seit: 10. Dez 2002
Ort: Bäretswil / Schweiz
121 Beiträge
 
Delphi 7 Enterprise
 
#10
  Alt 2. Jan 2003, 08:29
Hallo Thea

Also es gibt natürlich einige Gründe die für Paradox sprechen. (Ich selber neige eher dazu zu sagen, dass es zuviele Gründe gibt, die gegen Paradox sprechen.) Ich denke einer der wichtigsten Gründe für Paradox ist, dass keine Installation eines DB-Server nötig ist. Dann ist da sicher auch noch der Preis, wobei sich dies relativiert, wenn man in Betracht zieht, dass mySQL ein Freeware-DBServer ist und deshalb ebenfalls nichts kostet.

Nun zur Frage, ob man das im Nachhinein wechseln kann. Grundsätzlich ist das immer möglich. Es gibt aber sicher einige Abklärungen, welche gemacht werden müssen.

1. Der SQL-Dialekt von Paradox. Da sollte es aber keine Schwierigkeiten geben, da Paradox nur ein Subset der Befehle von SQL-92 unterstützt. Die meisten Datenbank-Server, welche heute auf dem Markt sind unterstützen aber SQL-92 vollständig.

2. Eine weiter Einschränkung liegt in der BDE, welche Du für Paradox benötigst. Meiner Meinung sollte man heute diese nicht mehr einsetzen. Mit den ADO-Komponenten von Windows ist man sicher besser bedient.

Es gibt wahrscheinlich noch einige Punkte mehr, welche man ansehen sollte. Meine Erfahrung mit dem Wechseln von einer Datenbank zur andersn ist aber, dass der Teufel meistens im Detail liegt. So wollte ich vor zwei Monaten eine Umstellung von SQL-Server auf Caché-Server machen. Die hat am Anfang sehr einfach ausgesehen, bis ich feststellen musste, dass bestimmte SQL-Strukturen (wie z.B. DECLARE in SQL-Scripts oder temporäre Tabellen auf dem Server) von Caché nicht unterstützt werden.

Gruss
Xaver
  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 18:44 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