Heenan, Lambert
Lambert.Heenan at AIG.com
Thu Oct 30 10:10:26 CST 2003
I guessed it might be something like that going on. Just couldn't resist the making the comment about normalization in case some other lister got it into his/her head that bit twiddling might be a good idea in general for databases. <g> > -----Original Message----- > From: John Colby [SMTP:jcolby at colbyconsulting.com] > Sent: Thursday, October 30, 2003 9:38 AM > To: Access Developers discussion and problem solving > Subject: RE: [AccessD] brain farts > > Yep, I realize. > > This is for my Lightweight Security System, and each long int represents a > bit map of which groups can manipulate a specific property - AllowEdit, > AllowDelete etc. I intentionally chose to use a bit map over a normalized > table because I am applying the same system to controls and their > properties. You could potentially end up having to load tens of thousands > of records to get the LWS initialized for a single form. As the system > exists now, there is a single record for the form itself, and a single > record for each control. > > Normalization is a key concept to a database but it isn't the end-all and > be-all to life in general. There are times where simple bit manipulations > are waaaaaaay faster (for a variety of reasons) and that speed is needed. > As the designer I had to make that decision. > > John W. Colby > www.colbyconsulting.com > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Heenan, > Lambert > Sent: Thursday, October 30, 2003 9:19 AM > To: 'Access Developers discussion and problem solving' > Subject: RE: [AccessD] brain farts > > > Of course you realize that needing bitwise operators for a field is just > screaming *it's not normalized* <g>. > > Lambert > > > -----Original Message----- > > From: John Colby [SMTP:jcolby at colbyconsulting.com] > > Sent: Wednesday, October 29, 2003 5:48 PM > > To: Access Developers discussion and problem solving > > Subject: RE: [AccessD] brain farts > > > > I tried this and it's giving me errors. This is the actual built up SQL > > statement. > > > > UPDATE MsysForms SET [FRM_GroupOpen] = [FRM_GroupOpen] ~ 4, > > [FRM_GroupVisible] = [FRM_GroupVisible] ~ 4, [FRM_GroupEdit] = > > [FRM_GroupEdit] ~ 4, [FRM_GroupAddRec] = [FRM_GroupAddRec] ~ 4, > > [FRM_GroupDelRec] = [FRM_GroupDelRec] ~ 4 WHERE (((MsysForms.FRM_ID) In > > (28,34,33,35,32,29,31,30))); > > > > Is that as you understand it to be used? Likewise it didn't like the > > vertical bar. > > > > John W. Colby > > www.colbyconsulting.com > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Stuart > > McLachlan > > Sent: Wednesday, October 29, 2003 5:04 PM > > To: Access Developers discussion and problem solving > > Subject: RE: [AccessD] brain farts > > > > > > Sure you can. You need to use the "bitwise" oprators, not the > > logical operators: > > > > & (Bitwise AND), > > | (Bitwise OR) , > > ^ (Bitwise Exclusive OR) > > ~ (Bitwise NOT) > > > > On 29 Oct 2003 at 15:37, James Barash wrote: > > > > > John, > > > As far as I know, you cannot use bitwise functions in an SQL > statement. > > > You need to create a function to do the comparison. For example: > > > > > > Public Function BinaryOr(ByVal val1 As Long, ByVal val2 As Long) As > Long > > > BinaryOr = (val1 Or val2) > > > End Function > > > > > > Create one function for each binary comparison you need or you could > > > create one function and pass the operator you want to use. > > > Hope this helps. > > > > > > James Barash > > > > > > > > > -----Original Message----- > > > From: accessd-bounces at databaseadvisors.com > > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of John Colby > > > Sent: Wednesday, October 29, 2003 2:12 PM > > > To: AccessD > > > Subject: [AccessD] brain farts > > > > > > > > > Folks, > > > > > > I'm trying to do boolean operations in a query. I have a table with > bit > > > mapped fields such that the long integer has bits "on" or 1 in > specific > > > circumstances. Now I want to OR in other numbers in SQL. I have a > SQL > > > statement that looks like: > > > > > > SELECT MsysForms.FRM_GroupOpen, ([MsysForms]![frm_GroupOpen] Or 1) AS > > > NewVal FROM MsysForms; > > > > > > regardless of the value contained in the field frm_GroupOpen, the > NewVal > > > is always -1 for an OR or an AND of any other value, and 0 for an XOR. > > > > > > If I have a 4 in the field, 4 OR 1 should give me 5, but it is giving > me > > > -1. I believe it is "interpreting" it and saying it is true. But why? > > > > > > John W. Colby > > > www.colbyconsulting.com > > > > > > > > > _______________________________________________ > > > AccessD mailing list > > > AccessD at databaseadvisors.com > > > http://databaseadvisors.com/mailman/listinfo/accessd > > > Website: http://www.databaseadvisors.com > > > > > > _______________________________________________ > > > AccessD mailing list > > > AccessD at databaseadvisors.com > > > http://databaseadvisors.com/mailman/listinfo/accessd > > > Website: http://www.databaseadvisors.com > > > > > > -- > > Lexacorp Ltd > > http://www.lexacorp.com.pg > > Information Technology Consultancy, Software Development,System Support. > > > > > > > > _______________________________________________ > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > > > > > _______________________________________________ > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > _______________________________________________ > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > > > _______________________________________________ > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com