Share via


IProduct3::SetRelatedProducts Method [C++]

Use this method to update product relationships.

Definition

[C++]

HRESULT IProduct3::SetRelatedProducts(_Recordset*pRSRelatedProducts);

[Visual Basic]

Sub SetRelatedProducts(pRSRelatedProducts As _Recordset)

Parameters

  • pRSRelatedProducts[C++]
    [in] A reference to a _Recordset object that contains the related products.
  • pRSRelatedProducts[Visual Basic]
    A Recordset object that contains the related products.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant Value Description
E_POINTER

[C++] 0x80004003

[Visual Basic] &H80004003

Invalid pointer
E_CAT_PRODUCT_DOESNT_EXIST

[C++] 0x8898001E

[Visual Basic] &H8898001E

The product you specified doesn't exist.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS

[C++] 0x88980045

[Visual Basic] &H88980045

The relationship that you specified either does not exist or is a inherited relationship, and therefore cannot be edited.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES

[C++] 0x88980101

[Visual Basic] &H88980101

There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

[Visual Basic] The recordset used for the pRSRelatedProducts parameter should be obtained from the RelatedProducts property.

[C++] The recordset used for the pRSRelatedProducts parameter should be obtained from the get_RelatedProducts method.

This method will update the value of the RelationshipDescription field for the current language of the catalog.

When calling this method on an inherited product in a virtual catalog, the method will have no effect if the relationship is inherited from a base catalog. If the relationship was added in the virtual catalog, changes will be updated. Inherited hierarchy and relationship links cannot be removed or changed in inherited categories. To modify inherited relationships, use a Category object obtained from the base Catalog object.

The input recordset should not contain any rows that are inherited relationships. Such rows must be removed from the recordset first if they exist, as they may be returned by the RelatedProducts method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'pRSRelatedProducts is an existing recordset.
'It was obtained from the RelatedProducts property.

myProduct.SetRelatedProducts(pRSRelatedProducts)

See Also

[C++]Product Object

[Visual Basic]Product Object

Copyright © 2005 Microsoft Corporation.
All rights reserved.