---------------------------------------------------------
Microsoft Data Access SDK version 2.0 Readme File
---------------------------------------------------------

(c) 1998 Microsoft Corporation. All rights reserved.

This document provides late-breaking or other information that supplements the Microsoft Data Access SDK documentation.

Section 1 gives information about the Data Access SDK as a whole.
Section 2 is about the OLE DB Provider for ODBC.
Section 3 is about OLE DB Conformance Test.
Section 4 is about OLE DB version 2.0.
Section 5 is about the ODBC version 3.51.
Section 6 is about the OLE DB Simple Provider (OSP) Toolkit.
Section 7 is about OLE DB for OLAP version 2.0.

-----------------------------------------------------------
SECTION 1: MICROSOFT DATA ACCESS SDK
-----------------------------------------------------------

--------
CONTENTS
--------

1. PRODUCT DESCRIPTION
   
2. NEW FEATURES

3. TECHNICAL NOTES

4. KNOWN BUGS, LIMITATIONS, AND WORKAROUNDS

----------------------
1. PRODUCT DESCRIPTION
----------------------
The Microsoft Data Access SDK is a one-stop shop for all the developer's needs to develop data access applications.  The Data Access SDK if focused to address specific developer activities.

The standalone Data Access SDK can be found in the \DASDK directory of this CD-ROM.

Interent Explorer 4.01, required to utilize the Data Access SDK on-line help, is included in the directory \MSIE401.97, and also includes Windows NT 4.0 Service Pack 3 (necessary for IE 4.01).

---------------
2. NEW FEATURES
---------------
New combined documentation addresses all the Data Access technologies.

A new sample highlights Data Access technologies.

The Data Access SDK combines OLE DB, ODBC, OSP, and Control Writer Toolkit documentation.

------------------
3. TECHNICAL NOTES
------------------
Requirements:

The stand-alone beta SDK requires Internet Explorer 3.02 (or later) in order to provide components necessary to view the on-line help for the SDK.  Included with this CD is a minimal copy of Internet Explorer 4.01 (without either add-on's or cached content).

For Windows 95: requires OSR2.

-----------------
4. KNOWN BUGS, LIMITATIONS, AND WORKAROUNDS
-----------------

The following is a list of Data Access SDK known bugs.

Installation issues: 

The Data Access SDK delivered with Visual Studio requires that the Microsoft Data Access components be installed prior to installing this SDK. Otherwise, when the SDK setup is run, you will get the message "Unable to load ODBC Control Panel (odbccp32.dll)". To resolve this, make sure that you have run the Visual Studio setup before installing the Data Access SDK.

With Internet Explorer 2.0, the stand-alone SDK fails to register Hhctrl.ocx. Internet Explorer 3.02 (and OSR2 on Windows 95) are required for successful installation of the Microsoft Data Access components.

The RDS Samples will not run after the Data Access SDK unless you run the RDSREG.BAT file in the location of the DLL's specified in the batch file.  The RDSREG.BAT file, and REGSVR32.EXE, are both located in the \MISC directory on the CD-ROM.

-----------------------------------------------------------
SECTION 2: OLE DB PROVIDER FOR ODBC
-----------------------------------------------------------

OLE DB Provider for ODBC Data Sources Issues:

Please see the Data Access SDK documentation for a full list of known issues and limitations with the ODBC provider. This section documents only issues not included in that documentation.

IOpenRowset doesn't quote table names.  
The ODBC provider does not quote table names passed through DBIDs; for instance, in IOpenRowset. Therefore, when trying to open a table against the ODBC provider that requires quoting the name (for instance, when the table name contains extended characters), the consumer must add the quotes to the table name manually, or simply execute SELECT * FROM <quoted table name>.

Boolean parameters are not converted to "True"/"False".
The OLE DB version 1.5 Specification calls for Booleans converted to string data types to appear as the strings "True" or "False". Using the ODBC provider, if the underlying ODBC driver does not support SQLDescribeParam, and the OLE DB consumer does not specify the type of the parameter, the ODBC provider will convert Boolean parameter values to "-1" and "0" when the data type of the parameter is a string. In order to ensure proper conversion against ODBC drivers that do not support describing parameters, the OLE DB consumer should always call SetParameterInfo to specify the types of parameters. 

Do not use DBPROP_INIT_LOCATION with MSDASQL and a Microsoft Access database. 
When attempting to initialize MSDASQL (the ODBC Provider), if you set the initialization property DBPROP_INIT_LOCATION to a valid value and specify that the DATASOURCE is a Microsoft Access data source, a crash will occur. Do not use the property DBPROP_INIT_LOCATION with MSDASQL and a Microsoft Access data source.  

The following data types are in the OLE DB 2.0 headers but not yet supported by the conversion library, Msdadc.dll:

	DBTYPE_ARRAY	= 0x2000**,
	DBTYPE_VECTOR	= 0x1000**,
	DBTYPE_RESERVED	= 0x8000**,
	DBTYPE_UDT	= 132**,
	DBTYPE_HCHAPTER	= 136** 

-----------------------------------------------------------
SECTION 3: OLE DB CONFORMANCE TEST
-----------------------------------------------------------

OLE DB Conformance Test Issues:

Several ADO conformance tests have problems with read-only providers. Specifically, Requery, Editmode, and Originalvalue tests attempt to modify the recordset without checking for read-only.  

ADO conformance tests currently require the PROGID. The ADO conformance tests currently require a provider to put its PROGID in the default string entry for the provider's CLSID registry key.

Currently the SDK installs Win32 and Alpha versions of the libs for a Win32 install. In future releases, only the platform-appropriate libs will be installed.

ICommand is one of the "Unsupported" tests. The .dsp and .rc files for ICommand are not included in this build of the SDK. 
 

-----------------------------------------------------------
SECTION 4: MICROSOFT OLE DB VERSION 2.0
-----------------------------------------------------------

------------------
TECHNICAL NOTES
------------------

OLE DB Test Tools
ITest Spy (ITestSpy.exe) requires HookOle to be successfully installed in order to spy on applications. In addition, ITest Spy requires the file Hkcfg.dll to be in its PATH. 


-----------------------------------------------------------
SECTION 5: MICROSOFT ODBC VERSION 3.51
-----------------------------------------------------------

--------
CONTENTS
--------

1. PRODUCT DESCRIPTION

2. NEW FEATURES
   
----------------------
1. PRODUCT DESCRIPTION
----------------------
ODBC version 3.51 is a minor update to ODBC 3.5. This release of the ODBC is supported on Windows 95, and on Windows NT 3.51 and Windows NT 4.0 Intel and Alpha platforms. ODBC 3.51 is available with 32-bit components only. Windows 16-bit applications are supported against 32-bit drivers as long as the 16-bit ODBC components provided by the ODBC 2.10c SDK (available on MSDN Level 2 and Level 3 subscriptions) or Visual C++ 1.52 are installed.

---------------
2. NEW FEATURES
---------------
ODBC version 3.51 is a minor update to ODBC 3.5 that includes the following additions:

- Support for Visual C++ Vista debugging.
- A driver's connection pooling settings are configurable from the ODBC Control Panel. You can now set the driver timeouts directly from the Control Panel.
- The connection pooling Retry Wait Time value can be configured from the ODBC Control Panel.
- Performance Monitor counters. Several connection pooling counters have been exposed in the Performance Monitor. This can be turned on and off through the ODBC Control Panel.
- The Tracing tab in the Control Panel has been redesigned to reduce confusion and turn on Vista tracing.


-----------------------------------------------------------
SECTION 6: OLE DB SIMPLE PROVIDER (OSP) TOOLKIT
-----------------------------------------------------------

The Java sample was developed using the Microsoft SDK for Java 2.01 Release. This SDK is available for download at http:\\www.microsoft.com\java\download.htm.

--------
CONTENTS
--------

1. PRODUCT DESCRIPTION
   
2. NEW FEATURES
   
3. TECHNICAL NOTES

4. KNOWN BUGS, LIMITATIONS, AND WORKAROUNDS

----------------------
1. PRODUCT DESCRIPTION
----------------------

The Microsoft OLE DB Simple Provider (OSP) Toolkit simplifies the development of OLE DB providers for simple, tabular data (for example, text files or in-memory arrays). A developer can code to a simple interface, IOLEDBSimpleProvider, and the OSP mapping layer DLL, MSDAOSP.DLL, included with the Data Access core components provides a layer on top of this simpler interface that serves a Level-0-conformant provider to OLE DB consumers.

---------------
2. NEW FEATURES
---------------

The OLE DB Simple Provider Toolkit for this release includes:

An updated sample for Visual Basic, which uses new data binding features of Visual Basic 6.0.

Bug fixes to the OSP mapping layer (MSDAOSP.DLL) to achieve OLE DB level 0 conformance.

------------------
3. TECHNICAL NOTES
------------------

3.1 OSP INTERFACE IN MICROSOFT INTERNET EXPLORER 4.0

3.1.1 SIMPDATA.H

The OSP interface, described in SIMPDATA.H, was previously released with Microsoft Internet Explorer 4.0.  The OSP interface released with the OLE DB Simple Provider Toolkit includes a modification of the OSPFIND enumeration. It adds enumeration value OSPFIND_UPCASESENSITIVE.  Providers written with this value will not compile using the previous version of SIMPDATA.H.


3.2 COM AND OLE DB CONFORMANCE

The OLE DB Simple Provider DLL functions as a Level 0 OLE DB Provider.  However, the following nuances have been noted during conformance testing:

3.2.1 IConnectionPoint::Advise

IConnectionPoint::Advise() returns the same cookie for different connections, since it returns the sink pointer as the cookie. According to the OLE specification, Advise() should return a token that uniquely identifies this connection. Typically each sink has a different pointer and therefore a different cookie. If the listener uses the cookie returned by Advise() in a subsequent Unadvise(), it will not unadvise the correct connection. To avoid this problem, do not register the same sink for the same notification.

3.2.2 IOpenRowset::OpenRowset

If no data member is specified on OpenRowset -- because no registration settings have been entered, or because no data source initialization property has been set -- MSDAOSP.DLL returns error DB_E_NOTABLE, which indicates that the table does not exist in the current data source. 

3.2.3  Properties

3.2.3.1 DBPROP_ROWSET_ASYNCH

MSDAOSP.DLL supports property DBPROPVAL_ASYNCH_SEQUENTIALPOPULATION. The default value is (DBPROPVAL_ASYNCH_INITIALIZE | DBPROPVAL_ASYNCH_SEQUENTIALPOPULATION | DBPROPVAL_ASYNCH_RANDOMPOPULATION).

3.2.3.2 DBPROP_COLUMNRESTRICT

When an OSP contains a read-only rowset (that is, getRWStatus() returns OSP_READONLY for all rows and columns), MSDAOSP.DLL sets properties DBPROP_ROWRESTRICT and DBPROP_COLUMNRESTRICT to VARIANT_TRUE. This reflects the possibility that the OSP may still allow new rows to be added, and these new rows might be updatable. If a new, updatable row is added, then columns may have mixed write status.  

3.3 PROGRAMMING LANGUAGE NOTES

3.3.1 Visual J++

3.3.1.1 isAsync()

IOLEDBSimpleProvider::isAsync() returns type int in Java instead of Boolean because of how the interface definition is generated. Developers should return 0 for false and a nonzero integer for true.

3.3.1.2 getVariant()

getVariant is one of the few OSP methods that returns an Object or Variant. Take care to allocate a fresh Variant that is not used elsewhere to return to the Microsoft Virtual Machine for Java, which may free the object at its leisure.

3.3.1.3 OSP Methods for Visual J++ and Internet Explorer 4.0

The OSP class package for Java developers, com.ms.osp.*, was released in Internet Explorer 4.0 with alternative versions of three of the OSP methods:

find()
getVariant()
setVariant()

In package com.ms.osp.*, these three methods are defined with arguments of type Object, instead of the Variant forms of the methods defined in the OSP interace, as distributed in this SDK in the type library SIMPDATA.TLB.  Internet Explorer 4.0 contains native marshaling code, invoked by the com.ms.osp.* package, which converts the Object instances to Variants (using variant VT_UNKNOWN as a default).  The OSP to OLE DB mapping layer, MSDAOSP.DLL, released in this SDK does not include custom marshaling.  As a result, simple providers written in Java using the Internet Explorer com.ms.osp.* package will not work with the OSP DLL released in this SDK unless Internet Explorer 4.0 is installed to provide the custom marshaling.

3.3.1.4 CLASSPATH Settings

In order to run the OSP Java sample, ensure that the Java virtual machine can locate the sample's compiled class files by adding their location to the Java class path search order. You may use the environment variable CLASSPATH for this purpose.

3.3.2 Visual Basic

The sample simple provider found in project SampleOSP_VB.vbp has been updated to work with new data binding functions of Visual Basic version 6.0.  It no longer compiles with Visual Basic 5.0.  Refer to the Simple provider Toolkit Help for instructions on building a simple provider using Visual Basic 5.0

-----------------
4. KNOWN BUGS, LIMITATIONS, AND WORKAROUNDS
-----------------

The following is a list of OLE DB Simple Provider Toolkit 2.0 known bugs and limitations:

On CanConvert, MSDAOSP.DLL returns E_INVALIDARG instead of S_FALSE for new data types added to the OLE DB 2.0 specification.

IRowsetFind does not yet support new compare operators NOTBEGINSWITH and NOTCONTAINS, added to the OLE DB 2.0 specification.

MSDAOSP.DLL does not support DBPROP_PROVIDERFRIENDLYNAME.

On CanConvert with dwConvertFlags != DBCONVERTFLAGS_COLUMN, MSDAOSP.DLL returns S_FALSE instead of DB_E_BADCONVERTFLAG.

Asynchronous Population

Unless the underlying OSP is asynchronous, setting property DBPROP_ROWSET_ASYNCH will have no effect.  MSDAOSP.DLL will not return until the rowset is populated.

In its asynchronous polling loop, MSDAOSP.DLL does not check the transferComplete() event fired by the underlying OSP.

Property DBPROP_INIT_ASYNCH is supported as READWRITE, but initialization of the Data Source object is always synchronous and immediate.

Property DBPROP_ROWSET_ASYNCH is supported as READONLY, but population of the Rowset is determined by the underlying OSP via the isAsync() method.

MSDAOSP.DLL is using the Data Source property instead of the Rowset property to determine the consumer's preference for synchronous or asynchronous behavior.

-----------------------------------------------------------
SECTION 7: OLE DB FOR OLAP
-----------------------------------------------------------

--------
CONTENTS
--------

1. PRODUCT DESCRIPTION

2. INSTALLATION AND SYSTEM REQUIREMENTS

3. OLE DB FOR OLAP SAMPLE APPLICATIONS

4. KNOWN BUGS, LIMITATIONS, AND WORKAROUNDS

----------------------
1. PRODUCT DESCRIPTION
----------------------
The Microsoft OLE DB for OLAP Toolkit provides an opportunity to learn about OLE DB for OLAP as well as the tools available for writing OLE DB providers and in particular writing an OLE DB for OLAP provider. Information about OLE DB for OLAP support in Microsoft products and how ADO MD will consume data from your provider is also included. This information is geared toward the developer who writes tools and/or applications that consume multidimensional data and developers who write multidimensional data stores. 

------------------
2. INSTALLATION AND SYSTEM REQUIREMENTS
------------------
SOFTWARE REQUIREMENTS FOR OLAP TOOLKIT

* Windows NT Workstation 4.0, or Windows NT Server 4.0 with Service Pack 3.

INSTALLATION INSTRUCTIONS

From your CD-ROM drive: 

* Run Dasdk/setup.exe to install the DA SDK OLAP Toolkit.

----------------------
3. MICROSOFT OLE DB FOR OLAP SAMPLE APPLICATIONS
----------------------

The sample OLAP applications included with the OLE DB for OLAP Toolkit in the Microsoft DA SDK are client applications. These samples should work with any multidimensional data provider exposing OLE DB for OLAP interfaces. 

A sample OLAP multidimensional database (BobsVideo.cub) is included with these samples and accessed via the Microsoft OLE DB for OLAP provider installed with the DA SDK components.

Documentation for the Microsoft OLE DB for OLAP samples and provider is also provided.

-----------------
4. KNOWN BUGS, LIMITATIONS, AND WORKAROUNDS
-----------------

The MDXsample application is provided as an uncompiled Visual Basic 5.0 project with source. This sample requires Visual Basic 5.0 with Service Pack 2 installed to compile and run successfully.

The Microsoft OLE DB for OLAP provider does not support Windows 95 at this time.


