Knowledge Base

Rdsvb.exe demonstrates how to use RDS with Visual Basic

Article ID: 183609

Article Last Modified on 7/11/2006


APPLIES TO


This article was previously published under Q183609

SUMMARY

Rdsvb.exe is a sample that demonstrates using Remote Data Service (RDS) within Visual Basic.

NOTE: This sample was originally written for RDS version 1.5 but works properly with RDS version 2.0 and later.

MORE INFORMATION

The following file is available for download from the Microsoft Download Center:
Release Date: October 29, 1999

For more information about how to download Microsoft support files, click the following article number to view the article in the Microsoft Knowledge Base:

119591 How to obtain Microsoft support files from online services

Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help prevent any unauthorized changes to the file.
The Remote Data Service is a mechanism for remoting a recordset from a server running Internet Information Server (IIS) or Personal Web Server (PWS) to a client computer over HTTP, HTTPS, or DCOM. Key concepts that the Rdsvb.exe sample demonstrates include the following:
Visual Basic for Applications (VBA) within Visual Basic remains probably the simplest technical way to implement a RDS application, but it also has an advantage for non VBA-developers in that it lets you focus just on the RDS technology and not any additional issues that may arise from using COM in C++ or Java. The only drawback is a limitation of the RDS.DataControl, which only allows binding of graphical controls within the Active Server Pages (ASP) environment. However, you can still manipulate this RDS object programmatically.

About the RDSVB sample

The Rdsvb.exe sample implements three separate projects to demonstrate the use of RDS with Visual Basic. After extracting the project (using the -d switch to preserve the sub-directory structure required by the sample), you will see the following three directories: In addition, the RDSVB sample provides a Microsoft Access database, Rdsdemo.mdb, which assumes you will create an ODBC System data source name (DSN) named RDSDemo. Some of the code in RDSVB is written specifically for this .mdb file. The code that lets you test conflict resolution assumes that it is working with a table having two columns, the first numeric, the second string. The code demonstrating the three techniques makes no assumptions about the data returned.

The BusObj project

The BusObj project builds an ActiveX DLL (Vbcbo.dll) that has five public functions exposed. These functions demonstrate RDS functionality, as well as helper routines for validating your business object. Because you can not actually debug (step into) a business object when invoked by the Remote Data Service, these routines help provide information to diagnose any difficulties you might encounter during development.

The ProgID for the BusObj project is VBCustBusObj.CBO, and it references the following two typelibs:
   - Microsoft ActiveX Data Objects Library (Msado15.dll)
   - Microsoft Remote Data Services Server Library (Msadcf.dll)
				

The Local Project

When implemented, the business object is registered and stored on a computer supporting Internet Information Server versions 3.0 and later. The client is typically on a remote computer, and while you may be able to debug the client on that remote computer, you will not be able to step into the business object and walk through its code. Therefore, you need a local client that you can run and use to debug the business object without using RDS to invoke it.

Visual Basic SPECIFIC: For Visual Basic, you should have both the local client and business object projects in the same project group. This is provided in the RDSVB sample through the Localtst.vbg file.

The Local Project is just for testing the business object, and has enough of an interface to accomplish this. Specifically, the user must provide the following:

Once provided, there are four buttons the user can use to validate the functionality of the business object: The Local Project references the following two typelibs:

The Remote Project

The Remote Project extends the functionality offered in the Local Project in the following ways: Possible Causes for Failure of the Remote Project:

Configuring and running the RDSVB sample

If you have not already, create a System DSN named RDSDemo for the Rdsdemo.mdb file included with the project.

Step 1: Compile and build the custom business object

You can register the Custom Business Object.
  1. Compile and build the DLL.
  2. Using Regsvr32.exe, register the DLL in the location you want it to reside on the Web server.
  3. Add the Registry key so that the business object is safe for launching:
    \HKEY_LOCAL_MACHINE
              \SYSTEM
                  \CurrentControlSet
                     \Services
                        \W3SVC
                            \Parameters
                                \ADCLaunch
                                   \VBCustBusObj.CBO]
    					
You can now verify the business object with the Local client. Visual Basic SPECIFIC: Once the DLL has been rebuilt, the project settings do not indicate that binary compatibility is to be maintained. The first time you build the DLL on your system, the Project Properties on the Component Tab should be set to No Compatibility, but after that you should change it to Binary Compatibility and set the path to the DLL.

Step 2: Verify the Local Client

It is not necessary to have Visual Basic on the server, but it is convenient. However, you can register the business object on your development computer and test it with the Local client independent of a Web server, although RDS Client Components are required(!)
  1. Compile and build the Local Client.
  2. Try each of the buttons in order. If you need to debug the business object, you will want to open the LocalTst.vbg Visual Basic Group file, instead of the Local Visual Basic Project file.
To test conflict resolution, start two instances of the compiled EXE, and try running.

Step 3: Verify the remote client

First, we will assume you are running the remote client on the same computer running the Web server where the RDS Server Components are installed.
  1. Open the Remote project. For your convenience, you might want to change the properties for the Server text box to indicate the URL of the server the Custom Business Object is registered on.
  2. Compile and build the Remote project.
  3. Open two instances of the compiled EXE. Try each of the techniques, and observe the results that occur when both EXEs try to post a new record with the same primary key. Now repeat this process, only distribute the Remote Client to another computer on the network.

REFERENCES

For more information on using RDS in Visual Basic, click the following article number to view the article in the Microsoft Knowledge Base:

119591 How to obtain Microsoft support files from online services

The conflict resolution code used in the custom business object was inspired (and abbreviated) from the RDSENSUB sample. RDSENSUB does offer somewhat more comprehensive conflict resolution than presented in this sample, such as, optionally rolling back any changes if a conflict occurred, checking if changes were made before calling the business object to perform the submit, returning a recordset back with the records that generated specific conflicts, and so on. However, this sample has only been written in VBA and requires translation of the additional functionality to C++/Java/VBScript. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

177720 Rdsensub.exe with RDS Conflict Resolution sample - Includes Binding, Addnew

For more information about writing and validating a custom business object or the methods that are exposed by the Vbcbo.dll file, click the following article number to view the article in the Microsoft Knowledge Base:

183315 How to write and validate a custom business object with RDS

For more information about the three techniques for returning data by using RDS, click the following article number to view the article in the Microsoft Knowledge Base:

183294 Techniques for returning a Recordset through RDS

For more information about how to download Microsoft Support files, click the following article number to view the article in the Microsoft Knowledge Base:

119591 How to obtain Microsoft support files from online services


Additional query words: RDSVB

Keywords: kbhowto kbdownload kbdatabase kbfile kbarttypeinf KB183609