aspgerman  

[aspgerman] RE: Boolsches und beim ms sql

christian marin
Thu, 14 Nov 2002 10:43:01 -0800

> Dabei überlappen sich die Kundengruppen
> nicht (also Gruppe A kann nicht Gruppe
> B automatisch lesen), aber eine
> Meldung kann für Gruppe A und B
> freigeschaltet sein. Die Gruppen
> sind über Flags definiert (also Bit
> 1 für Gruppe A usw.)

also hast du irgendwo definiert
gruppe a ..1, gruppe b ..2, ect
das flag für die berechtigung setzt sich dann zusammen
aus 2^1+2^3+.... - soweit richtig?

dann fragst du für zb. gruppe C (8 = 2^3) so ab

DECLARE @g int
SET @g = 3 (oder halt als parameter holen)
SELECT * FROM tblBla WHERE (intFlag ^ POWER(2, @g)) % POWER(2, @g + 1) = 0

^ ist das bitweise oder und modulo der nächsthöheren 2er-potenz
ergeben alle 0, die in der summe die 8 drinnen haben

hth, christian


| [aspgerman] als archive@jab.org subscribed
| http://www.aspgerman.com/archiv/aspgerman/ = Listenarchiv
| Sie können sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspgerman.asp