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 that is 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 8 and later SAS IOM servers
  • integrated SAS formatting services, which are the included core set of SAS formats that are 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 by using the ADO adOpenDynamic cursor type and recordset bookmarks
OLE DB data providers, including the IOM Data Provider, can be accessed through the low-level OLE DB interfaces by using Visual C++. Alternatively, they can 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 Providers for 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 locate the specified workspace only if it is stored in either a WorkspaceManager object or an ObjectKeeper object. Depending on the interface that you use, store your workspace as follows:
  • If you use the object manager, then create an ObjectKeeper object 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 workspace manager, then specify VisibilityProcess when you create your workspace. When you specify this attribute, the workspace manager stores the workspace automatically. When you have finished using the IOM Data Provider, remove the workspace by using the RemoveWorkspace function.