I think you need to understand the audience here. We don't see many
professional developers. Mostly we see people who just happened to fall
into the development arena and have little or no training. Many posters
cannot handle VBA let alone work with SQL Management Studio (BRING BACK
ENTERPRISE MANAGER!!!!!) to create stored procs and triggers so the advice
we tend to offer is that which can be understood and implemented by
untrained people. Think of it as the difference between "the best possible
solution" and "the best solution possible".
I have high hopes for Jet (now called ACE, I think) now that the Access team
has taken over development from the SQL Server team. I am hoping we'll see
some real improvements in functionality and stability. The SQL Server team
thought of Jet as a toy and a competitor so they were not inclined to keep
it current. They totally missed the point of Access as a RAD tool and a
complement to SQL Server.
We live in different universes. What is best practice for Web development
is not necessarily best practice for client/server development. And what
is
best practice for WinForms development is not necessarily best practice
for
Access development. You live in a SQL Server -centric world. My world
includes RDBMS' of all types which is why you almost certainly know more
about SQL Server than I do. I am a generalist. I know a little about a
lot
of things. Large clients generally have a multitude of applications
running
against various database servers. My Access applications frequently need
to
access data from more than one RDBMS. Because of that, I rely heavily on
Jet SQL which will work regardless of which back end I connect to. I
don't
always know when I start development where the BE will reside. I always
use
development techniques with an eye to potentially upsizing to some non-Jet
BE. Relying on Jet to sort it all out gives me the ultimate in
flexibility.
Only if I have a problem do I resort to stored procedures and views
because
those are always RDBMS specific and therefore, they are limiting..
Pat, sincere thanks for sharing your thoughts.
I don't think we're so different in our approaches -- no offence
intended
I previously worked on a shrink wrap (but highly customizable) product
where the user could choose one of Jet, Oracle and SQL Server for the
'back end'; most of the devs used linked tables in Access to have a
'standard' SQL interface. I went from there to a product that used
Intersystems Caché: for the underlying horror, see
http://thedailywtf.com/Articles/A_Case_of_the_MUMPS.aspx but
thankfully it has a fairly decent SQL gateway. I was fine with that
because my personal 'response' to having to deal with multiple SQL
engines was to concentrate on Standard SQL. If I know more about Jet
and SQL Server respectively (i.e. non-Standard, proprietary details)
then it's because I've also worked on products which use exclusively
those engines or have had to deviate because the engine doesn't
support certain parts of the Standard. The problem with the 'linked
tables' approach IMO is that you make Jet SQL the common denominator
and Jet has been left far behind as regards Standard SQL.
Perhaps where we are most different is that I 'buy in' to the concept
of tiered architecture. I find it most strange that people round here
(I'm not thinking of anyone in particular) would go out of their way
to encourage people not to use SQL parameters but instead to hard code
form's and their controls' names into Jet SQL procs and views, to
avoid validation rules in tables in favour of validation in front end
forms, and so on.
Jamie.
--