Einzelnen Beitrag anzeigen

sveni2211

Registriert seit: 22. Dez 2006
Ort: Friedrichroda
38 Beiträge
 
#1

Firebird: Gibt es einen Und-Operator?

  Alt 24. Apr 2009, 21:59
Datenbank: Firebird • Version: 2.1.2 • Zugriff über: ZEOS
Hallo.

In einem Projekt bin ich gerade dabei eine Alternative zu einer bestehenden Sybase-Datenbank zu suchen. Nun wollte ich diesbezüglich auch Firebird ausprobieren. Bin dabei jetzt aber auf ein auf den ersten Blick triviales Problem gestoßen.

In der bestehenden Datenbank werden sehr viele Flag-Felder verwendet. Das heißt, es sind Interger-Felder, welche Bitweise Informationen tragen.
Auf die Informationen wird unter Sybase mit dem Operator "&" zugegriffen.
Beispiel: Es gibt das Feld FlagField vom Typ integer. Das Bit 1 hat die Bedeutung rot, das Bit 2 die Bedeutung Blau und Bit 3 die Bedeutung Grün.
Will ich jetzt wissen, ob in dem Feld ein bestimmter Wert vorhanden ist, wird einfach das Feld mit einem Bitmuster verglichen.
Also z.B.

select ... IsBlau = (TestField&2)>0, IsGruen = (TestField&4)>0 ... from Tabelle

Unter Firebird hatte ich sowas bisher nicht gebraucht. Habe die Interbase 6 Dokumentation schon durchgewühlt, aber habe dort keine Operantenübersicht gefunden. Probiert habe ich schon TestField&2; TestField and 2. Beides nimmt Firebird nicht an. Eine Suche bei Google nach Firebird Operanten brachte auch nichts.

Darum meine Frage, kennt Firebird so etwas überhaupt, und falls ja, wie wird in Firebird der Operant für "und" angegeben?

Danke schon einmal für Hilfe.
  Mit Zitat antworten Zitat