MDAC 2.5 SDK - OLE DB Providers
OSP Toolkit


 

OLEDBSimpleProvider::find

Searches for a set of values specified in varSval, in column iColumn starting at iRow. Upon successful completion, the row number with the matching value is returned in piRowFound.

HRESULT find (
   LONG      iRowStart,
   LONG      iColumn,
   VARIANT   varSval,
   OSPFIND   findFlags,
   OSPCOMP   compType,
   LONG *    piRowFound);

Parameters

iRowStart

[in]
Position of the first row of the data set at which the search operation begins.

iColumn

[in]
Position of the first column of the data set at which the search operation begins.

varSvalt

[in]
The target value or values of the search operation.

findFlags

[in]
An enumeration consisting of the values defined in the following table.

Value Meaning
OSPFIND_DEFAULT = 0 Specifies that the search operation should be in ascending order through rows in a case-insensitive manner.
OSPFIND_UP = 1 Specifies that the search operation should be in descending order through rows.
OSPFIND_CASESENSITIVE = 2 Specifies case-sensitivity for the search.
OSPFIND_UPCASESENSITIVE = 3 Specifies that the search operation should be in ascending order through rows in a case-sensitive manner.

compType

[in]
An enumeration consisting of the the values defined in the following table.

Value Meaning
OSPCOMP_EQ = 1
OSPCOMP_DEFAULT = 1
Specifies that the search is for the first value equal to varSval.
OSPCOMP_LT = 2 Specifies that the search is for the first value less than varSval.
OSPCOMP_LE = 3 Specifies that the search is for the first value less than or equal to varSval.
OSPCOMP_GE = 4 Specifies that the search is for the first value greater than or equal to varSval.
OSPCOMP_GT = 5 Specifies that the search is for the first value greater than varSval.
OSPCOMP_NE = 6 Specifies that the search is for the first value not equal to varSval.

piRowFound

[out]
The number of the row containing the matching value of the search. If no corresponding match is found, OLEDBSimpleProvider::find should return the constant -1.

Return Codes

S_OK

The method succeeded.

DISP_E_TYPEMISMATCH

The provider was unable to match the type of the varSval to the underlying type of the column.

E_FAIL

A provider-specific error occurred.

Comments

Using the native type of the underlying column, OLEDBSimpleProvider::find performs compares. Providers should return DISP_E_TYPEMISMATCH when they are unable to convert the varSval to the underlying type of the column.

Comparing string values always compares values as they would be returned from a call to OLEDBSimpleProvider::getVariant with OSPFORMAT_FORMATTED. Providers should not coerce values of varSval obtained from a previous call to OLEDBSimpleProvider::getVariant with OSPFORMAT_HTML.