IDBDataSourceAdmin::ModifyDataSource

Modifies the current data source.

HRESULT ModifyDataSource (
   ULONG         cPropertySets,
   DBPROPSET   rgPropertySets[]);

Parameters

cPropertySets

[in]
The number of DBPROPSET structures in rgPropertySets. If this is zero, the provider ignores rgPropertySets and the method does not do anything.

rgPropertySets

[in/out]
An array of DBPROPSET structures containing properties and values to be set. The properties specified in these structures must belong to the Data Source Creation or Initialization property groups; Initialization properties must be supported by the provider for use in data source creation. If the same property is specified more than once in rgPropertySets, then which value is used is provider-specific. If a provider cannot support a property, then the property is ignored. If cPropertySets is zero, this argument is ignored.

For information about the properties in the Data Source Creation and Initialization property groups that are defined by OLE DB, see "Data Source Creation Properties" and "Initialization Properties" in Appendix C. For information about the DBPROPSET and DBPROP structures, see "DBPROPSET Structure" and "DBPROP Structure" in Chapter 11.

Return Code

S_OK
The method succeeded. In all DBPROP structures passed to the method, dwStatus is set to DBPROPSTATUS_OK.

DB_S_ERRORSOCCURRED
The data source was modified but one or more properties—for which the dwOptions element of the DBPROP structure was DBPROPOPTIONS_OPTIONAL—were not set. The consumer checks dwStatus in the DBPROP structures to determine which properties were not set. The method can fail to set properties for a number of reasons, including:

E_FAIL
A provider-specific error occurred.

E_INVALIDARG
cPropertySets was not zero and rgPropertySets was a null pointer.

In an element of rgPropertySets, cProperties was not zero and rgProperties was a null pointer.

E_UNEXPECTED
The data source object was in an uninitialized state.

DB_E_ERRORSOCCURRED
The data source was not modified because one or more properties—for which the dwOptions element of the DBPROP structure was DBPROPOPTIONS_REQUIRED—were not set. The consumer checks dwStatus in the DBPROP structures to determine which properties were not set. None of the satisfiable properties are remembered. The method can fail to set properties for a number of reasons, including:

DB_E_NOTSUPPORTED
The provider does not support this method.

DB_SEC_E_PERMISSIONDENIED
The consumer did not have permission to modify the current data source.

Comments

ModifyDataSource modifies the current data source and leaves the data source object in an initialized state. It is an error to call ModifyDataSource when there are open sessions, commands, or rowsets on the data source object; that is, the consumer must release all interface pointers on all sessions, commands, and rowsets on the data source object before calling ModifyDataSource.

See Also

IDBDataSourceAdmin::CreateDataSource, IDBDataSourceAdmin::DestroyDataSource