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