SAS 9.1.3 Integration Technologies » Developer's Guide

Developing Windows Clients
Client Requirements
Client Installation
Selecting a Windows Programming Language
Programming with Visual Basic
Programming in the .NET Environment
Using VBScript
Programming with Visual C++
Using the Object Manager
Creating an Object
Object Manager Interfaces
Using a Metadata Server with the Object Manager
Metadata Configuration Files
Error Reporting
Code Samples
Using Connection Pooling
Choosing Integration Technologies or COM+ Pooling
Using Integration Technologies Pooling
Using Com+ Pooling
Pooling Samples
Using the IOM Data Provider
Using the Workspace Manager
Class Documentation
Windows Clients

Using the SAS IOM Data Provider

The SAS IOM Data Provider is an OLE DB data provider that supports access to SAS data sets that are managed by SAS Integrated Object Model (IOM) servers. Although an object server is a scriptable interface to SAS, manipulating data in that server context is best accomplished with the IOM Data Provider.

OLE DB is a set of interfaces that evolved from the Microsoft Open Database Connectivity (ODBC) data access interface. OLE DB interfaces provide a standard by which applications can uniformly access data located over an enterprise's entire network and stored in a variety of formats—such as SAS data sets, database files, and nonrelational data stores. OLE DB interfaces can provide much of the same functionality that is provided by database management systems. In addition, OLE DB for Online Analytical Processing (OLAP) extends the OLE DB interfaces to provide support for multidimensional data stores.

Through the OLE DB interfaces, the IOM Data Provider adds the following functionality to consumer programs:

  • simultaneous user updates
  • SQL processing
  • a choice of either exclusive access (member-level lock) or multiple user access (record-level lock) to SAS data files, selectable on a per-rowset open basis
  • access to SAS data files on SAS System 8 and later SAS IOM servers
  • integrated SAS formatting services, which are the included core set of SAS formats used when reading or modifying data
  • use of basic OLE DB schema rowsets, which enable consumers to obtain metadata about the data source that they use
  • support for random access using the ADO adOpenDynamic cursor type and recordset bookmarks.

OLE DB data providers—including the IOM Data Provider—may be accessed through the low-level OLE DB interfaces using Visual C++. Alternatively, they may be accessed through the higher-level ActiveX Data Objects (ADO) using Visual C++, VBScript, Java, JScript, or Visual Basic. In .NET programming languages like C# and VB.NET, the IOM Data Provider can be used via the ADO.NET OLE DB data provider. For examples using ADO.NET, see Accessing SAS Data with ADO.NET.

The IOM Data Provider is documented in the SAS 9.1 Data Providers: ADO/OLE DB Cookbook . This cookbook, which applies to all four SAS Data Providers, contains ADO examples written in Microsoft Visual Basic as well as OLE DB examples written in Microsoft Visual C++. You can either apply the examples directly or modify them to fit your needs.

Note: When you create an IOM Data Provider connection, you specify the unique identifier of a workspace object. The IOM Data Provider can only locate the specified workspace if it is stored in either a WorkspaceManager or an ObjectKeeper. Depending on the interface that you use, store your workspace as follows:

  • If you use the ObjectManager, create an ObjectKeeper and add your workspace to it manually by using the ObjectKeeper's AddObject function. When you have finished using the IOM Data Provider, remove the workspace by using the RemoveObject function.

  • If you use the WorkspaceManager, specify VisibilityProcess when you create your workspace. When you specify this attribute, the WorkspaceManager stores the workspace automatically. When you have finished using the IOM Data Provider, remove the workspace by using the RemoveWorkspace function.