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"
.
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()
Copyright © SAS Institute Inc. All rights reserved.