aspgerman  

[aspgerman] AW: RE: Boolsches und beim ms sql

Günter Hagedorn
Thu, 14 Nov 2002 22:18:31 -0800

Hi Christian,

ich habe auf das ^ hin im Internet auch noch
folgende gefunden:

&  bitweise und (zwei Operanden) 
|  bitweise oder (zwei Operanden) 
^  bitweise ausschließlich oder (zwei Operanden) 
~  bitweise nicht (ein Operand) 

Eine Meldung könnte ja für alle Benutzer, nur für die Gruppe 1
freigeschaltet sein, ein User kann auch der Gruppe 1, 2 und 3
angehören.

Ich habe damit jetzt folgende Beispiel-Abfrage formuliert:

SELECT COUNT(*) FROM tbl_News WHERE (lngLevel & 8 > 0) OR (lngLevel=0)

womit ich dann alle Meldungen bekommen müßte, die u.a. für die
Gruppe 3 freigeschaltet wurden sowie alle öffentlichen (Level 0).
Stimmt das so, oder übersehe ich was ?

Ich bin sicher, dass eine indexierte n:m-Verknüpfung eleganter und
für die Zukunft sicherer ist (ich habe hier ja nur max. 32 ebenen).
Allerdings weiß ich nichts über die Performance-Einbußen. Weiß
da jemand was genaueres ?

Danke,
Günter



> -----Ursprüngliche Nachricht-----
> Von: christian marin [mailto:christian@;marin.at] 
> Gesendet: Donnerstag, 14. November 2002 18:28
> An: ActiveServerPages German
> Betreff: [aspgerman] RE: Boolsches und beim ms sql
> 
> 
> > 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 [EMAIL PROTECTED] 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
> 


| [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