AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird: Gibt es einen Und-Operator?
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird: Gibt es einen Und-Operator?

Ein Thema von sveni2211 · begonnen am 24. Apr 2009 · letzter Beitrag vom 25. Apr 2009
Antwort Antwort
sveni2211

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

Firebird: Gibt es einen Und-Operator?

  Alt 24. Apr 2009, 22: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
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Firebird: Gibt es einen Und-Operator?

  Alt 25. Apr 2009, 09:07
Über UDFs kann FireBird weitere Funktionen erhalten.

Diese hier kenne ich zwar nicht näher, ist aber anscheinend in aktiver Entwicklung und enthält auch binäre Operationen:

http://freeadhocudf.org/
- "Silicon Valley" in der Eifel -

Liste weiterer UDF Bibliotheken:
http://www.ibphoenix.com/main.nfs?a=...e=ibp_udf_libs
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#3

Re: Firebird: Gibt es einen Und-Operator?

  Alt 25. Apr 2009, 09:12
Vielleicht hilft Dir dieser Artikel weiter: http://chee-yang.blogspot.com/2009/0...on-in-sql.html
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
sveni2211

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

Re: Firebird: Gibt es einen Und-Operator?

  Alt 25. Apr 2009, 11:33
Danke für die Tipps. Der letzte Link sah zwar vielversprechend aus, aber unter Firebird funktioniert das irgendwie nicht. Eventuell behandelt der Firebird eine Division auf einen Integer / 2.0 anders.

Das mit der Udf sah vielversprechend aus. Habe mir das alles angeschaut und bin dabei auf eine List gestoßen, welche Funktionen in Firebird in den höheren Versionen fest integriert sind. Und da ist auch das UND dabei gewesen. Warum man bei Google nichts dazu findet...

Also. Es gibt diese binäre Operatoren unter Firebird ab Version 2.1:
Bin_And -> binäres UND
Bin_Or -> binäres ODER
Bin_XOr -> binäres auschließendes ODER.

Für den Fall das das nochmal jemand sucht.
In Versionen kleiner 2.1 sind die Funktionen über die AdHoc-Udf verfügbar.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz