Storage Mode and Update Mode on Storage Objects within OLE DB Programming

From: Ronald Dodge (ronald.dodge_at_cfgraphics.com)
Date: 02/24/04


Date: Tue, 24 Feb 2004 10:38:49 -0500

I want to be sure I understand this difference correctly as it doesn't
explain the storage mode too well in the MSDN library,
http://msdn.microsoft.com/library/en-us/oledb/htm/olprchapter07_7.asp

>From what I'm reading, it looks like there are 2 levels of transactions that
takes place on storage objects of BLOBs

First level is the Storage Mode, rather if it's in transacted or direct
mode. This mode is much like how immediate vs deferred transaction mode
works, but only this is from the storage object's interface to the rowset
that it's in.

Second level is the Update Mode, rather if the rowset is in immediate or
deferred update mode. This is the transaction level that takes place
between the rowset and the data store.

One exception, if the "DBPROP_DELAYSTORAGEOBJECTS" is set to "VARIANT_TRUE",
then the storage object is always in immediate update mode regardless rather
the recordset is in immediate or deferred update mode.

Main reason why I'm going through this OLE DB programming learning time
period, I have ran into concurrent user issues for the DB programming that
I'm doing in Access. I started out using DAO cause it was easier to learn
and all of my internal customers at the time was on Access 97, which does
not support ADO programming, but as time went, my customers went to Access
2002 and I found issues within the DAO programming. Since, I have started
looking into ADO coding, I have not been able to get the results that I want
at this point of time. Along the way, found there's a lot of OLE DB
programming tied into with the ADO programming, so I am now going through
OLE DB programming and treating it as another level deeper into the DB
programming stuff that I just have to learn before I can really say what the
issue is.

A lot of Access programmers would say for me to bind the forms and controls,
but by doing that, I would only be able to use one of 2 things:

    Put in strict data validation checks.

        --OR--

    Allow mouse users to click on commands and only have general data
validation checks in place.

Example of bound form/control behaviour:

User clicks on "Reset" command button to reset the form.
Previous control gets checked. If check fails, the previous control keeps
the control and the reset command doesn't get executed.

End of Example

This sort of behaviour can get to be very frustrating for those that
predominantly use the mouse.

Given this, I had to create my own custom validation code and have all
forms/controls unbound. Now that I can only use unbound forms/controls to
address the above issue, I also have to use ADO and/or DAO coding, though
the idea is also to eventually move the code into an actual DB server
program like MS SQL Server which only takes ADO coding, not DAO coding, to
manipulate the data. During the different points of testing before I got
too far into it, I realized the updating process was not working out as well
as I was expecting to work via ADO coding. With ADO coding, I am still not
getting what I want, but at this point, I'm only chalking it as a learning
time period. However, as I look things up, I'm not totally finding all of
the information that I need to be able to compare apples to apples, but
instead at this point, only have apples to oranges to compare. In VBA, I
have the Watch Window that I get the enumerated values of the different
properties, and on MSDN Library, I'm only getting the text values like how
it's shown at
http://msdn.microsoft.com/library/en-us/oledb/htm/joltspec_40.asp

Where is the enumerated values listed for the various provider-specific text
based property settings? Can't really compare numbers to text in this sort
of comparison, thus why I mentioned at this point of time, I only have
apples to oranges to compare, which can't be compare, at least not without a
conversion table.

-- 
Ronald R. Dodge, Jr.
Production Statistician
Master MOUS 2000

Quantcast