[AccessD] brain farts

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


More information about the AccessD mailing list