Known Issues for the Local Provider

Numeric variables are not converted correctly when you use the File Format property and access SAS data sets on platforms other than Windows.
When you use the OLE DB property DBPROP_SAS_INIT_FILEFORMAT (the ADO property "SAS File Format") and specify a value of "V8", the local provider does not properly convert numeric variables for SAS data sets that are created on platforms other than Windows. In this case, the local provider returns incorrect data for the numeric variable (although it does not return an error).
To ensure that numeric variables are converted properly for SAS data sets created on platforms other than Windows, use the default file format or "V9".
For more information about cross-platform support, see Data Sources and File Types Supported by the SAS Providers.
ADO Recordsets that are opened with a client-side cursor incorrectly appear to support updating.
If you use the read-only local provider to open a Recordset object with a server-side cursor, ADO attempts to read the values of the DBPROP_IRowsetUpdate and DBPROP_IRowsetChange properties. If both of these properties are false, the following Visual Basic statements return FALSE:
  • Recordset.Properties("IRowsetUpdate")
  • Recordset.Properties("IRowsetChange")
  • Recordset.Supports(adUpdate)
  • Recordset.Supports(adUpdateBatch)
In this case, any attempt to update the Recordset results in this error message: "Object or provider is not capable of performing requested operation." This response is consistent with a read-only provider.
However, when a Recordset object is opened with a client-side cursor, ADO does not ask the provider for the values of DBPROP_IRowsetChange and DBPROP_IRowsetUpdate. In this case, all four of the Visual Basic statements in the previous list incorrectly return TRUE. This return value makes it appear as if the opened recordset can be updated. If you attempt to perform the update, you see this error message: "Multiple-step operation generated errors. Check each status value."
The OLE DB Rowset RestartPosition method and the ADO Recordset MoveFirst method are not supported for transport files.
If you use the local provider to read transport files, you encounter a movement limitation. The engine used to read transport files is a forward-only, sequential single pass, which means that you can make only one pass through the file. As a result, the OLE DB Rowset RestartPosition method and the ADO Recordset MoveFirst method are not supported for the transport file format. In order to reposition the cursor at the first row, you must complete one of these tasks:
  • When using OLE DB, you must close and then reopen the file.
  • When using ADO, you must close and then reopen the Recordset.
Reopening a connection fails on Windows 7.
When an ADO connection object is opened, closed, and then reopened, the connection fails. SAS has noticed that the "Data Source" property is cleared when a connection object is closed in a Windows 7 operating environment.
To reuse a connection object, set the user-specified properties again before calling the open method.
Dim obConnection As New ADODB.Connection
obConnection.Provider = "sas.LocalProvider"
obConnection.Properties("Data Source") = "C:\v9data"
obConnection.Properties("SAS File Format") = "V9"
obConnection.Open()
...
obConnection.Close()
' Set the connection properties again before the call to Open()
obConnection.Properties("Data Source") = "C:\v9data"
obConnection.Properties("SAS File Format") = "V9"
obConnection.Open()
...
obConnection.Close()