Announcement

Collapse
No announcement yet.

Durchsuchen von Datensätzen

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

  • Durchsuchen von Datensätzen

    Hallo Leute!!!

    Seit paar Tagen versuche ich ein DB nach einem Suchmuster durchzusuchen. Dazu verwende ich die Methode Tablename.Locate(...). Das funktioniert und setzt den Datenzeiger auf das gesuchte Feld.
    Wenn ich aber eine Teilstring eingebe, findet er nur den ersten passenden Eintrag in der Tabelle. Wie kann ich nach weiteren Datensätzen suchen(die ganze Tabelle durchsuchen)? Einfach weitergehen?

    Krys

  • #2
    Statt die Suchfunktion selbst zu implementieren würde ich die Suche der Datenbank überlassen.

    Schick eine SQL-Anfrage der Art

    SELECT * FROM <TabellenName> WHERE <FeldName> = <Filterkriterium>

    an die Datenbank. Dies liefert dir eine Ergebnissmenge, welche alle gewünschten Datensätze liefert.
    Z.B. liefert die Abfrage (bei MS SQL-Server 2000)

    SELECT * FROM Kunden WHERE KundenName LIKE 'M%'

    alle Kunden zurück, die mit M beginnen

    Comment


    • #3
      Hi Bernhard,

      Ich werde heute das versuchen, was du mir vorgeschlagen hast. So eine Lösung habe ich mir schon mal überlegt aber ich wollte das unbedingt in Delphi programmieren. Aber wenn du sagst, dass es besser ist, versuche ich es.
      Viell Dank für deinen Hinweis.

      Grüß, Kry

      Comment


      • #4
        Hall Krystian,

        bevor du da bei Null anfängst, hier ein Tipp von einem Laien...

        Einen Knopf machen und.....

        procedure TForm1.Button1Click(Sender: TObject);<br>
        var s,XSQL, XSQL1:String;<br>
        begin<br>
        With wwQuery1 do<br>
        begin<br>
        DisableControls;<br>
        Close;<br>
        SQL.Clear;<br>
        s := MyEditFeld.Text;<br>
        XSQL1 := 'SELECT * FROM MyDB.DB';<br>
        XSQL := XSQL1+' WHERE ('MyField' LIKE "%'+s+'%")';<br>
        SQL.Add(XSQL);<br>
        Open;<br>
        EnableControls;<br>
        end;<br>
        end;<br>

        ich hoff es ist klar zu verstehen?

        Detle

        Comment


        • #5
          Hi Detlef,

          ich habe das Suchen von Datensätzen in einer DB ein bisschen ähnlich gemacht. Mit einer SQL-Abfrage erstelle ich mir nun zur Laufzeit eine Tabelle: <br>
          Table.Active := False;<br>
          Table.SQL.Clear;<br>
          Table.SQL.Add(select ProduktName from Art where ProduktName like ''' + Edit1.Text + '%''');<br>
          Table.Active := True;<br>
          Zu dem Eingabefeld 'Edit1' habe ich das Ereingnis OnKeyUp verwenden und das Ergebnis sieht ähnlich wie die Hilfe bei Delphi 5/6.(je nach Eingabe ändert sich das Suchergebnis)<br>
          Leide weiß ich noch nicht, wie ich von den Daten in der neuen Tabelle(Temp-Table) auf die Daten der Haupttabelle(in meinem Fall Art) verweisen kann, so dass ich über die neue Tabelle(die Suche) einen Zugriff auf die alte Tabelle habe. Ich brauch das, um die Daten Editieren zu können. Ich hab da eine Idee, aber ich bin mir nicht so sicher ob es richtig ist. Kann mir vielleicht jemand einen guten Tip geben, wie man das am besten lösen kann?<br><br>
          Kry

          Comment

          Working...
          X