ADO: Active X Data Objects

ADO: Active X Data Objects

by Jason T Roff
     
 

View All Available Formats & Editions

The architecture of ADO (ActiveX Data Objects), Microsoft's newest form of database communication, is simple, concise, and efficient. This indispensable reference takes a comprehensive look at every object, collection, method, and property of ADO for developers who want to get a leg up on this technology.See more details below

Overview

The architecture of ADO (ActiveX Data Objects), Microsoft's newest form of database communication, is simple, concise, and efficient. This indispensable reference takes a comprehensive look at every object, collection, method, and property of ADO for developers who want to get a leg up on this technology.

Product Details

ISBN-13:
9781565924154
Publisher:
O'Reilly Media, Incorporated
Publication date:
07/04/2001
Edition description:
1 ED
Pages:
620
Product dimensions:
7.06(w) x 9.20(h) x 1.18(d)

Read an Excerpt

Chapter 3: Accessing ADO with Various Languages

Because ActiveX Data Objects expose their properties by means of COM interfaces, they can be accessed by any language that can utilize COM. In this book, we will look at accessing ADO from Visual Basic, Visual C++, and Visual J++, since these are the most commonly used tools for developing ADO applications on the Windows operating system.

In addition to these three languages, there are two scripting languages that are already well-established: VBScript and JScript. VBScript is a lightweight subset of Visual Basic that's designed specifically for adding script to HTML documents. JScript is Microsoft's implementation of JavaScript, designed for script development within HTML documents.

Although ADO is meant to offer the same development interface to each language from which it is accessed, some inconsistencies arise because of differences in their syntax and the development environments in which they are used. In this chapter, we will take a look at each of the five languages and learn how to get started developing ADO applications in each.

Accessing ADO with Visual Basic

Visual Basic is probably the most popular language in which to develop applications for ADO. It is also the language used in the examples and code throughout this book. Visual Basic is a very easy language to understand and excellent for both beginners and advanced developers.

Referencing ActiveX Data Objects

To write an application in Visual Basic using ActiveX Data Objects, you must first tell Visual Basic about them by adding ADO to the list of references that Visual Basic uses to run an application. You may do this by selecting the Project References menu item so that the References dialog box appears, as shown in Figure 3-1. In the Available References list box, select the latest version of Microsoft ActiveX Data Objects Library that you have installed. Now you are ready to create and use ADO objects within your current Visual Basic application.

 

Figure 3-1. The References dialog box of Visual Basic

When redistributing ADO applications, you should use the MDAC redistributable package available for download from Microsoft's web site.

Creating ActiveX Data Objects

In Visual Basic, you can create new ADO objects by simply referencing the ADODB classes of the Microsoft ActiveX Data Objects Library. The following piece of code creates a Connection and a Recordset object in Visual Basic:

' create a reference to a Connection object
Dim con As ADODB.Connection
 
' create a reference to a Recordset object
Dim rst AS ADODB.Recordset

As with any other Visual Basic objects, you must instantiate them before they can be used, as in the following examples:

' create a new instance of the Connection object
Set con = New ADODB.Connection
 
' create a new instance of the Recordset object
Set rst = New ADODB.Recordset

In the previous examples, the ADODB prefix to the ADO objects is used in case your Visual Basic development environment references another object of the same class name in a different class library. The following code illustrates how a DAO Recordset and an ADO Recordset can be created within the same project:

' which object model is this from?
Dim rst As Recordset
 
' explicitly specifying the Data Access Object Model
Dim rstDAO As DAO.Recordset
 
' explicitly specifying the ActiveX Data Object Model
Dim rstADO As ADODB.Recordset

If you know for a fact that no other class library listed in the References dialog box of your current Visual Basic application has the same class names as ADO, you may remove the ADODB prefix when declaring and instantiating object variables. However, if you are using more than one object model with the same class definitions (as in the previous example), not specifying the library from which the class should be derived tells VB to instantiate the class from the library that comes first in the list of references to the project.

In Visual Basic, it is always a good idea to remove an object from memory once it is no longer being used. This is done by setting the object to Nothing, as follows:

' remove the objects 
Set con = Nothing
Set rst = Nothing

Using ADO with Visual Basic: An Example

So that you can visualize how to work with ADO objects in Visual Basic, Example 3-1 uses ADO to open a connection to the Jet Biblio database and to return a recordset containing the names of its first ten authors. Each record is then written to a list box before both the Connection and Recordset objects are closed. Note that the example makes use of dynamic control creation supported by Visual Basic 6.0 or later; if you have an earlier version, simply delete the code that defines, instantiates, and sets the properties of the list box, and place a list box named lstAuthors on the form at design time.

To begin, create a new Application EXE project, and open the Project References menu so that you see the References dialog box shown in Figure 3-1. Select the latest version of Microsoft ActiveX Data Objects that you have installed, and press the OK button.

Now, replace the existing source code for Form1 with the code shown in Example 3-1, and run the application. That's all there is to it. Make sure that you have a Biblio.mdb database located at C:\Program Files\Microsoft Visual Studio\VB98, or if you have it in another location, simply change the path in the code that points to the Access database.

Example 3-1: A Simple Visual Basic Example

Option Explicit
 
Private WithEvents lstAuthors As ListBox
 
Private Sub Form_Load(  )
 
    ' create new instances of the Connection and Recordset objects
    
    Dim con As ADODB.Connection
    Dim rst As ADODB.Recordset
 
    ' instantiate the Connection and Recordset objects
    Set con = New ADODB.Connection
    Set rst = New ADODB.Recordset
      
    ' create two strings to define the connection and the recordset
    
    Dim sConString As String
    Dim sSQLString As String
            
    ' Create list box control
    
    Set lstAuthors = Me.Controls.Add("vb.listbox", _
                                     "lstAuthors", _
                                     Me)
    
    lstAuthors.Visible = True
 
    
    ' open the BiblioDSN data source with the Connection object
    
    sConString = "Provider=Microsoft.Jet.OLEDB.4.0; " _
               & "Data Source=C:\Program Files" _
                             & "\Microsoft Visual Studio" _
                             & "\VB98\Biblio.mdb"
 
    con.Open sConString
    
    Debug.Print "Connection opened."
 
    ' create a Recordset object from a SQL string
    
    sSQLString = "SELECT TOP 10 Author " & _
                 "FROM Authors"
    
    Set rst = con.Execute(sSQLString)
    
    Debug.Print "SQL statement processed."
    
    ' retrieve all the data within the Recordset object
    
    Debug.Print "Getting data now..."
    
    Do Until (rst.EOF)
        lstAuthors.AddItem rst("Author").Value
        rst.MoveNext
    Loop
    
    Debug.Print "End of data."
    
    ' close and remove the Recordset object from memory
   
    rst.Close
    Set rst = Nothing
    
    Debug.Print "Closed and removed " _
              & "Recordset object from memory."
    
    ' close and remove the Connection object from memory
    
    con.Close
    Set con = Nothing
    
    Debug.Print "Closed and removed " _
              & "Connection object from memory."
 
End Sub
 
Private Sub Form_Resize(  )
    
    ' this code is added for asthetics
    
    lstAuthors.Top = 0
    lstAuthors.Left = 0
    lstAuthors.Width = Me.Width
    lstAuthors.Height = Me.Height
 
End Sub

A lot of this information will not make much sense to you now, but it will start to as you begin to learn how to use ActiveX Data Objects from the rest of the chapters in this book. The important technique to notice from this example is how the ADO objects are created in the beginning of the code example, and how the ADO objects are removed at the end of the code example.

Accessing ADO with Visual C++

Visual C++ is a much more difficult language and environment with which to develop applications for ActiveX Data Objects. Because it is so difficult, Microsoft is constantly trying to provide developers with easier ways to access ADO components.

By far the easiest method (and the only method described here) is one that takes advantage of the #import keyword. This approach offers not only the most control to the developer, but it also allows the developer to code in a Visual Basic programming style....

Read More

Customer Reviews

Average Review:

Write a Review

and post it to your social network

     

Most Helpful Customer Reviews

See all customer reviews >