[AccessD] brain farts

John Colby jcolby at colbyconsulting.com
Thu Oct 30 08:37:38 CST 2003


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





More information about the AccessD mailing list