473,588 Members | 2,486 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Recommended data access model

Some time a ago, on this newsgroup the following comments were made in
recommending
good references for Access (2003)
I used to recommend Dr. Rick Dobson's, "Programmin g Access <version>" for
people moving from power user to developer, but now I suggest you browse
it,
too. It strongly emphasizes ADO, which knowledgeable Microsoft insiders no
longer recommend, and the Access ADP client to SQL Server. He writes well,
and is a good teacher, but the subjects may not be what you are looking
for.
The Access 2000 version may be more useful than later ones.


Can anyone expand on the statement about ADO being no longer recommended
and what is currently recommended?
I am working through Dr. Dobson's "Programmin g Access 2003...".

Thanks
Tony
Nov 13 '05 #1
9 3296
"Tony Lee" <To**@myaddress .com> wrote in message
news:AM******** ***********@new s.xtra.co.nz...
Some time a ago, on this newsgroup the following comments were made in
recommending
good references for Access (2003)
I used to recommend Dr. Rick Dobson's, "Programmin g Access <version>" for
people moving from power user to developer, but now I suggest you browse
it,
too. It strongly emphasizes ADO, which knowledgeable Microsoft insiders no
longer recommend, and the Access ADP client to SQL Server. He writes well,
and is a good teacher, but the subjects may not be what you are looking
for.
The Access 2000 version may be more useful than later ones.


Can anyone expand on the statement about ADO being no longer recommended
and what is currently recommended?
I am working through Dr. Dobson's "Programmin g Access 2003...".


ADO has been replaced by ADO.Net which, despite the similar name, has very
little in common with its predecessor.

DAO was developed specifically for use with Jet databases (i.e. MDB files),
and is still part of Access.

--
Doug Steele, Microsoft Access MVP
http://I.Am/DougSteele
(no e-mails, please!)


Nov 13 '05 #2
Can anyone recommend a comprehensive refernece for using ADO.net in Access
2003?
Nov 13 '05 #3
AFAIK, Access 2003 doesn't support ADO.Net

--
Doug Steele, Microsoft Access MVP
http://I.Am/DougSteele
(no e-mails, please!)

"Tony Lee" <To**@myaddress .com> wrote in message
news:K0******** ***********@new s.xtra.co.nz...
Can anyone recommend a comprehensive refernece for using ADO.net in Access
2003?

Nov 13 '05 #4
This is from MDAC 2.8 SDK.

"The Role of ADO in MDAC
The Microsoft Data Access Components (MDAC) provide data access that is
independent of data stores, tools, and languages. It provides a
high-level, easy-to-use interface and a low-level, high-performance
interface to practically any data store available. You can use this
flexibility to integrate diverse data stores and use your choice of
tools, applications, and platform services to create the right
solutions for your needs. These technologies provide the basic
framework for general-purpose data access in Microsoft® Windows®
operating systems.

There are three primary technologies in MDAC. ActiveX® Data Objects
(ADO) is a high-level, easy-to-use interface to OLE DB. OLE DB is a
low-level, high-performance interface to a variety of data stores. Both
ADO and OLE DB can work with relational (tabular) and nonrelational
(hierarchical or stream) data. Finally, Open Database Connectivity
(ODBC) is another low-level, high-performance interface that is
designed specifically for relational data stores.

ADO provides a layer of abstraction between your client or middle-tier
application and the low-level OLE DB interfaces. ADO uses a small set
of Automation objects to provide a simple and efficient interface to
OLE DB. This interface makes ADO the perfect choice for developers in
higher level languages, such as Visual Basic and VBScript, who want to
access data without having to learn the intricacies of COM and OLE DB."

Do you see where ADO is "not recommended"? No? Read it again! Still
not? Guess you'll never get to be a knowledgeable MS insider then.

Still can't find it? Read on:

"Microsoft Data Access Components (MDAC)
The Microsoft® Data Access Components (MDAC) SDK documents the key
technologies that are part of Microsoft's strategy for providing access
to information across the enterprise.

Microsoft Data Access Components include ActiveX® Data Objects (ADO),
OLE DB, and Open Database Connectivity (ODBC). Data-driven
client/server applications deployed over the Web or a LAN can use these
components to easily integrate information from a variety of sources,
both relational (SQL) and non-relational.

If you have questions or need detailed information about properly
redistributing MDAC, see Redistributing MDAC for a description of the
distribution requirements for MDAC.

ActiveX Data Objects (ADO)
Microsoft ActiveX Data Objects (ADO) provides consistent,
high-performance access to data and supports a variety of development
needs, including the creation of front-end database clients and
middle-tier business objects that use applications, tools, languages,
or Internet browsers. The primary benefits of ADO are ease of use, high
speed, low memory overhead, and a small disk footprint.

ADO provides an easy-to-use interface to OLE DB, which provides the
underlying access to data. It uses a familiar metaphor - the COM
Automation interface - available from all leading Rapid Application
Development (RAD) tools, database tools, and languages.

OLE DB
Microsoft OLE DB is a set of interfaces that expose data from a variety
of relational and nonrelational sources by using the Component Object
Model (COM). OLE DB interfaces provide applications with uniform access
to data stored in diverse information sources. These interfaces support
the amount of DBMS functionality appropriate to the data store,
enabling the data store to share its data.

OLE DB comprises a programmatic model consisting of data providers,
which contain and expose data; data consumers, which use data; and
service components, which process and transport data (such as query
processors and cursor engines). In addition, OLE DB includes a bridge
to ODBC to enable continued support for the broad range of ODBC
relational database drivers."

Did you get it that time? NO? Geeesh. Well, see the part where it says,
". The primary benefits of ADO are ease of use, high speed, low
memory overhead, and a small disk footprint." Now tell me, who would
want THAT!
OK, maybe ADO is deprecated. Let's check that:

"Deprecated Components
Each of the following components is considered obsolete. While these
components are still supported in this release of the Microsoft® Data
Access Components (MDAC), they may be removed in the future. When
writing new applications, you should avoid using these deprecated
components. When modifying existing applications, you are strongly
encouraged to remove any dependency on these components.

ODBC Provider (MSDASQL)
You are strongly encouraged to use one of the native OLE DB Providers
instead of the Microsoft Open Database Connectivity (ODBC) Provider.
Native OLE DB Providers provide better application stability and
performance. Furthermore, native OLE DB Providers will be supported in
the future, whereas MSDASQL will not have any new features added to it,
will not be available on 64-bit, and will not be accessible from the
OLE DB NET Data Provider.

Remote Data Services (RDS)
Remote Data Services (RDS) is a proprietary Microsoft mechanism for
accessing remote data across the Internet or intranet. Microsoft is now
shipping the Microsoft Simple Object Access Protocol (SOAP) Toolkit 2.0
that enables you to access remote data using an open, XML-based
standard. Given the availability of the SOAP Toolkit 2.0, you should
migrate from RDS to SOAP. The SOAP 2.0 Toolkit 2.0 also includes sample
code for remotely accessing Microsoft ActiveX® Data Objects (ADO)
Recordsets.

Jet and Replication Objects (JRO)
The Microsoft Jet OLE DB Provider and other related components were
removed from MDAC 2.6. Microsoft has deprecated the Microsoft Jet
Engine, and plans no new releases or service packs for this component.
As a result, the Jet and Replication Objects (JRO) is being deprecated
in this release and will not be available in any future MDAC releases."

Did you see where ADO is deprecated? No? What can I say?

Doesn't this all explain about "knowledgea ble MS insiders not
recommending DAO" ?

Still not convinced? I don't know what to say:
That ADO is crisp, clean and has a million (well maybe only a hundred
or so) capabilities that DAO never even thought of?
That Access and ADO work extremely well together?
That speed advantages of DAO over ADO are in nanoseconds?
That Lyle has written many successful applications (Access included)
over the last few years without any (except the behind the scenes
stuff) DAO at all.
That ADO, currently, is the only well known and popular technology one
can use in almost exactly the same way within VBA, VB, VBS, JavaScript
and ASP to interface with Databases?

Nov 13 '05 #5
"ly******@yahoo .ca" <ly******@yahoo .ca> wrote in
news:11******** **************@ g49g2000cwa.goo glegroups.com:

[quoting MS documentation]
"Deprecated Components
[]
Jet and Replication Objects (JRO)
The Microsoft Jet OLE DB Provider and other related components
were removed from MDAC 2.6. Microsoft has deprecated the Microsoft
Jet Engine, and plans no new releases or service packs for this
component. As a result, the Jet and Replication Objects (JRO) is
being deprecated in this release and will not be available in any
future MDAC releases."


All of this makes NO SENSE whatsoever in the context of writing
applications that interface with JET DATA.

Take Jet replication, for instance, There is no MS-provided
technology other than JRO for managing certain aspects of Jet
replication (much of it can be done via DAO, and the rest can be
done with the TSI Synchronizer that MichKa created, but that's not
from MS, and it's unsupported, even by MichKa).

If you're going to use Jet as your data store, you've already using
a deprecated technology in the first place, so it makes no sense to
me to then choose non-deprecated, non-native tools for that data
store when THE DATA STORE ITSELF IS DEPRECATED.

This is, perhaps, why in recent releases of Access, ADO has been
relegated to the second-class status it always should have had in
regard to applications run against Jet data.

--
David W. Fenton http://www.bway.net/~dfenton
dfenton at bway dot net http://www.bway.net/~dfassoc
Nov 13 '05 #6
Good arguments, Lyle, and good quotes.

But, as far as I know, the former Product Manager for ADP and ADO has not
changed his statement that, currently, MDB-Jet-ODBC is preferrable for
accessing MS SQL databases over ADP-ADO-OleDB.

I can't determine how much of the documents you quote is real technical
information and how much is marketing hype. I do know that ADO was very
highly hyped even in its first, buggier, releases.

It was a complaining user in one of the newsgroups who reported that someone
in product support had told him that ADP was going to be deprecated in the
next release -- maybe he said the same about ADO. I believe he later said he
was disregarding those statements. If _I_ wrote that ADO is or was to be
deprecated, it was a typo on my part, because I haven't read nor heard that
from any authoritative source.

I don't need to use the same data access method in all the languages you
list and I can't recall anyone who does serious development in all those
languages. I suspect ADO could also be used, with some care, in VB.NET, C#,
and ASP.NET. BUT, all the .NET developers I know are using the successor
access method, ADO.NET.

Didn't you write that you had decided, for various reasons, not to use ADPs?
Are you using ADO in MDBs? Would that be in code behind the scenes?

Larry Linson
Microsoft Access MVP
Nov 13 '05 #7
Larry

ADO <> ADP

ADO != ADP

I use ADO extensively; I have "deprecated " the use of ADPs in my own
work.

If I HAD to use MS-SQL and Access together (I don't) I would probably
at least try doing it unbound or "half-bound" (my term) with
disconnected ADO recordsets set as the recordsets for forms
(updatebatch on close) and reports and getstring()s used for
pull-downs. Would this be a lot of work? I think so. Would it be better
than the ADPs or ODBC MS has made available to us? I hope so. I'm not
sure if ADPs would have any advantage over MDBs, or vice versa in this
scenario.

Nov 13 '05 #8
"Larry Linson" <bo*****@localh ost.not> wrote in
news:6PyDe.9135 $JJ.3528@trnddc 09:
I can't determine how much of the documents you quote is real
technical information and how much is marketing hype. I do know
that ADO was very highly hyped even in its first, buggier,
releases.


There is plenty of contradictory MS documentation. The replication
documents from MS are a mix of very old stuff, written back before
too many people understood all the implications of how Jet
replication worked, and things that have been kept up-to-date.
You'll find things in the MS replication documentation that are now
known to be bad ideas, but which are nowhere deprecated, mostly for
marketing reasons.

I know of no MS replicaton that explains that replicating Access
objects is a bad idea that is guaranteed over time to corrupt your
whole replicated database beyond recovery, but that's the sad
reality of it. The last time I looked, there were still MS
replication docs recommending replication for pushing out front-end
revisions.

So, even if it *does* come from official MS documentation, I
wouldn't trust it when it is contradicting both common sense and my
own experience.

--
David W. Fenton http://www.bway.net/~dfenton
dfenton at bway dot net http://www.bway.net/~dfassoc
Nov 13 '05 #9
<ly******@yahoo .ca> wrote
ADO <> ADP

ADO != ADP
Yes, of course, and I did not intend to imply otherwise. On the other hand,
the only way that "classic ADO" is useful outside an ADP/ADE is "in the
background" via VBA code, and the successor to classic ADO, the already
available ADO.NET is dissimilar in many respects.
If I HAD to use MS-SQL and
Access together (I don't) I would
probably at least try doing it unbound
or "half-bound" (my term) with
disconnected ADO recordsets set as
the recordsets for forms (updatebatch
on close) and reports and getstring()s
used for pull-downs. Would this be a
lot of work? I think so. Would it be
better than the ADPs or ODBC MS
has made available to us? I hope so.
I'm not sure if ADPs would have any
advantage over MDBs, or vice versa
in this scenario.


I'd be interested to hear your evaluation of using ADO's disconnected
recordsets with unbound or "half-bound" forms/reports. My experience with
ADPs was on a system with unbound forms, using ADO to retrieve the data and
ADO to execute SQL to update the DB. The original author clearly knew little
about ADP, ADO, or SQL Server for that matter -- not one of the SQL Server
tables had a PK or unique index. And, yes, it was clumsy. I strongly suspect
that your design would not be so clumsy.

(The client was unwilling to pay for a major overhaul, as
they only wanted to "nurse along" this application until they could fold the
functionality into their corporate ERP system. I hope their ERP
implementation moves along a lot more rapidly than most I have seen, or
they'll be trying to put lipstick on that pig for a long time. <G>)

Larry
Nov 13 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

16
3006
by: D Witherspoon | last post by:
I am developing a Windows Forms application in VB.NET that will use .NET remoting to access the data tier classes. A very simple way I have come up with is by creating typed (.xsd) datasets. For example dsParts.xsd and including that in the data tier. I then will create a class that looks like this Public Class CPart Inherits dsParts
1
2181
by: yaduraj | last post by:
Hello All, I have some basic questions regarding the implementation of a data bus model in a simulator. Its hard for me to realize how to model something of that sort in a simulator..suppose I need to model a 200mhz bus and contention on it..for data coming from memory. I copied fraction of code that does this..but I am not sure if it does
5
2123
by: Kevin C | last post by:
I was curious to know what some developers out in the industry are doing when it comes to exposing Data access logic, specifically persistence. This is assuming that your not using an O/R framework or something that completely abstracts you from the persistence details. Are you: 1. Having simple data type interfaces and the data layer know nothing about the domain models. For example: public int SaveCustomer( string fname, string...
1
2574
by: Johann Blake | last post by:
I am looking for a good solution on how to implement data access in an application so that there is a clean separation between the data access layer, the business layer and the GUI layer. I am looking for a robust solution for a major application. Almost every developer seems to come up with a completely different solution. While many of them are not bad, I really want a very good one. My database is SQL Server 2000 and I am using Visual...
2
2204
by: headware | last post by:
I'm relatively new to ASP.NET and ADO.NET, but I have a basic design question regarding the use of web services and APS.NET applications. Right now we have an application that uses web services to access the database layer. However, the code works in a pretty cumbersome and ungeneric way. Basically every query, update, and insert has its own function. So you see a lot of functions like webService.InsertCustomer(name, age, phone); or...
3
1768
by: darren via AccessMonster.com | last post by:
Hi I'm based in the UK and I've drifted into Access from building a simple db for myself, to then being asked to build a simple db for someone else, to now spending time building increasingly more sophisticated (for me)databases. So far my learning curve has been based upon a handleful of books and this forum (which I think is fantastic and the level of help and knowledge sharing has astounded me). Aside from the very basic dummies...
8
9201
by: Richard Collette | last post by:
When attempting to debug a webservice, I get the error: Cannot serialize member System.Exception.Data of type System.Collections.IDictionary, because it implements IDictionary. In reading about web services (http://msdn2.microsoft.com/en-us/library/ds492xtk.aspx), the documentation states that exceptions will automatically be handled as a fault element in the message and then converted to a SoapException in the client.
0
2033
by: nicomp | last post by:
I created a Web Service: I imported System.Data.SqlClient so I could access SQL server tables programmatically. The web service builds and deploys with no problems. When I try to add the corresponding Web Reference to the Web Site project I get the error listed below. I am able to create other Web Services on the same server and I am able to add Web Referneces to them. I have narrowed it down to the "Imports System.Data.SqlClient"...
10
1468
by: simon.hibbs | last post by:
Lets say that I have an application consisting of 3 files. A main.py file, gui.py and a data.py which handles persistent data storage. Suppose data.py defines a class 'MyDB' which reads in data from a database, and main.py creates an instance of this object. How does code in gui.py access this object? Here's simplified pseudocode: MAIN.PY import gui, data DataObject = data.MyDB(blah)
0
7862
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
8228
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
8357
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
7987
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8223
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
6634
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
5729
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
3847
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
2372
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.