John W. Colby
jwcolby at colbyconsulting.com
Sun Jul 25 21:51:00 CDT 2004
Either way, the savings are substantial, both in storage and in speed.
John W. Colby
www.ColbyConsulting.com
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of DWUTKA at marlow.com
Sent: Sunday, July 25, 2004 10:19 PM
To: accessd at databaseadvisors.com
Subject: RE: [AccessD] Hit the Wall?
maybe, I always thought yes/no were 1 byte on the disk......hmmmmm.
Drew
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com]On Behalf Of John W. Colby
Sent: Sunday, July 25, 2004 9:11 PM
To: 'Access Developers discussion and problem solving'
Subject: RE: [AccessD] Hit the Wall?
I second that! If you have a lot of booleans, store them in a long, 31
booleans / long integer (avoid the math fun!).
With a small module to handle the setting / clearing / reading of a bit you
are off and running. MUCH less storage that using actual booleans (which I
always thought were stored in one bit of a 16 bit value).
JWC
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of DWUTKA at marlow.com
Sent: Sunday, July 25, 2004 9:45 PM
To: accessd at databaseadvisors.com
Subject: RE: [AccessD] Hit the Wall?
Dan, if you have a lot of yes no fields, you may be able to stick with just
one table! Instead if using yes/no fields (which take a byte each), I would
go with merging the yes/no fields into a long, or byte field. With a byte
field, you can get 8 yes/no fields in one field. With a Long, you can get
31 (32, if you want to have a little math fun). Use bit comparison for the
yes/no fields.
ie, if a field has 3 as a value, that means that 1 and 2 are turned on, and
nothing else.
So whatever 'value' is represented by 1 can be checked with:
rs.("MyField").value AND 1
Drew