Announcement

Collapse
No announcement yet.

TADODataset nach * Filtern ?

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

  • TADODataset nach * Filtern ?

    Liebes Forum,

    ich schreibe an einer Anwendung, die Daten aus einem PPS-System ausliest. Diese Daten - im aktuellen Fall Artikelnummern - werden dann durchsucht. Da der Filter bei jedem Tastendruck geupdated wird, bietet sich auch nicht an, die Filterung schon im SQL-Query vorzunehmen.
    Leider gibt es in dem PPS-System jedoch einige Artikel, deren Artikelnummer mit einem * (dem Zeichen) beginnt. Versuche ich, danach zu Filtern und den Filter auf Nr LIKE '*%' zu setzen, quittiert das Dataset dies mit einer Fehlermeldung. Auch Varianten wie LIKE '[*]%' oder ähnliches Funktionieren nicht.
    Die verwendete Datenbank ist der Microsoft SQL Server 2000.
    Im Voraus schonmal danke an alle, die Antworten!

    Philipp

  • #2
    Ich vermute, es geht nicht um Filter sonder um SQL? Zwei Anregungen: Keine Verwendung der AdoQuery, sondern AdoDataset. Keine Verwendung solcher SQL-Anweisungen, sondern Werte über Parameter setzen. Dann sollte es eigentlich gehen. Parameter sind von Haus aus wesentlich flexibler. Speziell bei Datumsabfragen kommt man praktisch nicht drum herum und dieser Fall scheint auch geeignet.<p>
    Mari
    Schöne Grüße, Mario

    Comment


    • #3
      Hallo Mario,

      Ich möchte tatsächlich das Dataset mit der Filter-Eigenschaft filtern. Wie ich schon schrieb soll die Filterung lokal vorgenommen werden, damit die SQL-Datenbank nicht bei jeder Aktualisierung des Filters durch eine erneute Abfrage belastet wird.
      Und ich benutze bereits ein TADODataset zum testen, mit TBetterADODataset ist das Verhalten aber leider auch nicht anders.

      Philip

      Comment


      • #4
        Der Asterix * ist wie % eine gültige Wildcard beim filtern und darf nur am Ende des Suchstrings benutzt werden. Du bekommst wahrscheinlich auch eine Fehlermeldung die genau das aussagt. Es gibt soweit ich weiß beim Filtern keine Möglickeiten ein ESCAPE Zeichen zu definieren um den Asterix zu escapen.
        Dir wird wohl nichts anderes übrigbleiben als ein weiteres in SQL berechnetes Feld hinzuzufügen in dem du den * durch ein anderes Zeichen erstetzt um dann immrt über dieses Feld zu filtern.

        Gruß
        Ral

        Comment

        Working...
        X