TADOQuery filtern



  • Hi,

    ich möchte ein TADOQuery filtern und habe dazu folgende Filter-Eigenschaft gesetzt:

    MyQuery->Filtered = false;
    MyQuery->Filter = "A = '1' OR A = '2' AND B = '3'";
    MyQuery->Filtered = true;
    

    Dabei bekomm ich folgenden Fehler:
    "Arguments are of the wrong type, are out of range, or are in conflict with one other."
    Mache ich aus dem AND ein OR, gehts. Darum vermute ich mal, dass man AND und OR nicht zusammen verwenden darf. Ist das so? Und wie krieg ich meine Filterbedingung trotzdem angewendet?



  • Hallo

    Ich weiß jetzt nicht genau was der SQL-Standard zum Thema Operatorenverkettung festgelegt hat, aber das sollte eigentlich keinen Fehler erzeugen.
    Um die richtige Verknüpfung zu erzwingen kannst du immer noch Klammern einsetzen :

    MyQuery->Filter = "(A = '1' OR A = '2') AND B = '3'";
    

    bis bald
    akari



  • Mit Klammern hab ich es zuerst versucht, der Fehler ist der gleiche.
    Kann es denn einen anderen Grund dafür geben? Die Datenmenge is im Batch-Modus geöffnet, hat es vielleicht damit was zu tun? Sonst bin ich ziemlich ratlos...


Log in to reply