IRowsetIndex::GetIndexInfo

OLE DB Programmer's Reference

Returns information about the index rowset capabilities.

HRESULT GetIndexInfo (    DBORDINAL             *pcKeyColumns,    DBINDEXCOLUMNDESC    **prgIndexColumnDesc,    ULONG                 *pcIndexPropertySets,    DBPROPSET            **prgIndexPropertySets);

Parameters

pcKeyColumns
[out]
A pointer to memory in which to return the number of key columns in the index.
prgIndexColumnDesc
[out]
A pointer to memory in which to return an array of DBINDEXCOLUMNDESC structures in key column order.The size of the array is equal to *pcKeyColumns.

The provider allocates memory for the structures and returns the address to this memory; the consumer releases this memory with IMalloc::Free when it no longer needs the structures. If *pcKeyColumns is zero on output or if an error occurs, the provider does not allocate any memory and ensures that *prgIndexColumnDesc is a null pointer on output.

For more information, see IIndexDefinition::CreateIndex.

pcIndexPropertySets
[out]
A pointer to memory in which to return the number of DBPROPSET structures returned in *prgIndexPropertySets. *pcIndexPropertySets is the total number of property sets for which the provider supports at least one property in the Index property group. If an error occurs, *pcIndexPropertySets is set to zero.
prgIndexPropertySets
[out]
A pointer to memory in which to return an array of DBPROPSET structures. One structure is returned for each property set that contains at least one property belonging to the Index property group. For information about the properties in the Index property group that are defined by OLE DB, see "Index Property Group" in Appendix C.

The provider allocates memory for the structures and returns the address to this memory; the consumer releases this memory with IMalloc::Free when it no longer needs the structures. Before calling IMalloc::Free for *prgPropertySets, the consumer should call IMalloc::Free for the rgProperties element within each element of *prgPropertySets. The consumer must also call VariantClear for the vValue property of each DBPROP structure in order to prevent a memory leak in cases where the variant contains a reference type (such as a BSTR.) If *pcIndexPropertySets is zero on output or if an error occurs, the provider does not allocate any memory and ensures that *prgIndexPropertySets is a null pointer on output.

For information about the DBPROPSET and DBPROP structures, see "DBPROPSET Structure" and "DBPROP Structure" in Chapter 14: Properties.

Return Code

S_OK
The method succeeded.
E_FAIL
A provider-specific error occurred.
E_INVALIDARG
pcKeyColumns, prgIndexColumnDesc, pcIndexPropertySets, or prgIndexPropertySets was a null pointer.
E_OUTOFMEMORY
The provider was unable to allocate sufficient memory in which to return the column description structures or properties of the index.
DB_E_NOINDEX
The rowset uses integrated indexes, and there is no current index.

See Also

IDBProperties::GetPropertyInfo | IIndexDefinition::CreateIndex

1998-2001 Microsoft Corporation. All rights reserved.



Microsoft Ole Db 2.0 Programmer's Reference and Data Access SDK
Microsoft OLE DB 2.0 Programmers Reference and Data Access SDK (Microsoft Professional Editions)
ISBN: 0735605904
EAN: 2147483647
Year: 1998
Pages: 1083

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net