Announcement

Collapse
No announcement yet.

Unscharfe Erkennung von Suchbegriffen mit TQuery

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Unscharfe Erkennung von Suchbegriffen mit TQuery

    Ich benutze den C++-Builder 4.0 und habe eine Suche mit SQL-Befehlen in einer von mir geschriebenen Datenbank formuliert. Dabei benutze ich TQuery.
    Die Suche war so geschrieben, dass ein bestimmter Begriff, den ich vorher in einer Listbox angeklickt hatte, genau so wiedergefunden werden soll, d.h. es sollen mir die Datensätze angezeigt werden. Der SQL-Befehl ist relativ kompliziert und auch von einigen Bedingungen abhängig: ich benutze dabei den LIKE-Operator. Der Befehl sieht in etwa so aus:

    SELECT * FROM MChoiceGrundwort WHERE
    ((Schlagwort2A1 LIKE 'Ort') OR (Schlagwort2B1 LIKE 'Ort') OR (Schlagwort2C1 LIKE 'Ort') OR (Schlagwort2D1 LIKE 'Ort') OR (Schlagwort2E1 LIKE 'Ort'))

    Dabei ist MChoiceGrundwort die benutzte Datenbank und 'Ort' der Suchbegriff. Schlagwort2A1 und Schlagwort2B1 usw. sind die Felder, in denen gesucht werden soll.

    Die Suche funktioniert auch, aber nur, wenn die Begriffe kürzer sind als etwa 25 Zeichen. Sind diese länger, dann werden die Datensätze gar nicht oder nur zum Teil gefunden.

    Die Frage ist nun: Gibt es eine Möglichkeit, durch eine Methode oder Eigenschaft das Verhalten der Datenbanksuche zu beeinflussen, so dass auch längere Begriffe gefunden werden?

    Für einen Vorschlag wäre ich sehr dankbar.

    (Josef Schmitte)


    Hier die Antworten auf die Fragen von Christian Marquardt und Bernhard Geyer:

    Die Datenbankfelder, in denen gesucht wird, sind 61 Zeichen lang. Ich benutze als Datenbankengine die BDE.

    20.12.2010 (Josef Schmitte)
    Zuletzt editiert von Josef Schmitte; 20.12.2010, 07:42. Reason: Antworten auf Fragen von Christian Marquardt und Bernhard Geyer

  • #2
    Wie lang sind die DB-Felder?
    Christian

    Comment


    • #3
      Über welche Kompos gehst du auf die DB (BDE/ADO/...)?

      Comment


      • #4
        Länge der Datenbankfelder und Kompos

        Ich bin ein noch nicht so erfahrener Benutzer und habe, was wohl nicht ganz üblich ist, die Antworten auf die Fragen von Christian Marquardt und Bernhard Geyer in meine ursprüngliche Frage durch nochmaliges Speichern geschrieben.

        Hier nochmal die Antworten:

        Die Datenbankfelder sind 61 Zeichen lang und ich gehe über die Borland Database Engine (BDE) in die Datenbank.

        Entschuldigung für die Verzögerung!

        (Josef Schmitte)

        Comment


        • #5
          Vermutlich ist die BDE hier fehlerhaft. Welche DB wird verwendet (MS SQL Server, Oracle, MySQL, ...)? Was passiert wenn über ADO gegangen wird?

          BDE ist seit 10 Jahren abgekündigt und hat mittlerweile sehr viel Fehler/Probleme mit halbwegs aktuellen Versionen aktueller DBMS.

          Comment


          • #6
            Gewählte Datenbank ist Paradox

            Die von mir gewählte Datenbank ist Paradox. Was ADO angeht, da würde ich gerne wissen, wo man es herbekommt und wie teuer das ist. Ich benutze den C++ Builder 4.0 in der Enterprise-Version und darin ist ADO meines Wissens nicht enthalten. Ich habe im Moment auch nicht die finanziellen Mittel, den C++ Builder auf die neueste Version upzudaten, sondern ich muss versuchen, mit den vorhandenen Mitteln zurechtzukommen. Außerdem muss sichergestellt sein, dass die Datenbank, die ich geschrieben habe, dann auch noch funktioniert.

            Comment


            • #7
              Ohwe - Paradox.

              Da klink ich mich mal aus. Da habe ich keine Ahnung (mehr) davon. Paradox+BDE ist eigentlich in 2010 ein garant für Probleme. Lösung ist eine andere DB zu nehmen und möglichst native darauf zuzugreifen.

              ADO würde ich für den Zugriff auf MS SQL Server empfehlen. Für alle anderen DB's gibts bessere Zugriffskompos.

              Comment

              Working...
              X